初心者のための R および RjpWiki に関する質問コーナー

新規投稿はできません




凡例中に数式と数値変数を繰り返し書きたいのですが

TAG (2007-06-27 (水) 21:50:40)

使用環境:R version 2.5.0 (2007-04-23), i386-apple-darwin8.9.1 です。

legendmiss.png

凡例として
「1 ミュー g/2 ミュー g/3 ミュー g」
のように数字と数式(ギリシャ文字)を混ぜて書きたいと思い

cols <- rainbow(3)
plot(sin, xlim = c(0, pi), ylim = c(-1, 1), ann=F, col=cols[1])
a <- NULL
b <- NULL
a <- expression(paste(1, mu, "g"))
b <- c(b, a)
a <- expression(paste(2, mu, "g"))
b <- c(b, a)
a <- expression(paste(3, mu , "g"))
b <- c(b, a)
legend(0.3, -0.2, b, col = cols, lwd=1)

上のようにコードを書いてみたのですが(プロットの部分はダミーです)
面倒なので凡例に関する部分を

a <- NULL
b <- NULL
for(i in 1:3)
{
	a <- expression(paste(i, mu, "g"))
	b <- c(b, a)
}
legend(0.3, -0.2, b, col = cols, lwd=1)

とすると、「iミューg/iミューg/iミューg」のように変数iが変数として認識されません。
paste関数の中なので当然なのかもしれませんが何か良い方法はないでしょうか?~

RjpWiki内のグラフィックス参考実例集:数式のプロットの例2に
「数式と数値変数の結合」とあるので参考にしてexpressionの代わりにsubstituteを使ってみたのですが

a <- NULL
b <- NULL
for(i in 1:3)
{
	a <- substitute(paste(x, mu, "g"), list(x=i))
	b <- c(b, a)
}
legend(0.3, -0.2, b, col = cols, lwd=1)

このようにすると「paste(1, mu, "g")/paste(2, mu, "g")/paste(3, mu, "g")」となり、
数値変数は反映されたのですがその他が駄目になるという結果になってしまいました。
解決策はあるのでしょうか?
どなたか対策をご存知でしたらご教授願えますでしょうか。

Condor & R

HPC (2007-06-27 (水) 00:31:04)

 Condor というPCクラスター上での Rの動作例ってありますか?

NAを含む行列を関数distで計算

su (2007-06-25 (月) 13:34:43)

使用環境:R version 2.5.0 (2007-04-23) i386-apple-darwin8.9.1
NAを含む行列xyで行xと行yとの間の市街距離を計算しました。

x = c(1,1,NA)
y = c(1,2,NA)
xy = rbind(x,y)
dist(xy[,-3], method="manhattan") 	# 3列目を除いた距離は、1
dist(xy[,3], method="manhattan") 	# 3列目だけの距離は、NA
dist(xy, method="manhattan")		# 3列目を含めた距離は、1.5

dist(xy, method="manhattan")の値が、1でもなく、NAでもなく、1.5となるのは、何故でしょうか?

データフレームからデータが取り出せない

K (2007-06-22 (金) 10:03:40)

度数分布表の値をもとに処理をしようとしているのですが、データフレームからデータが取り出せずに困っています。

> dbh_table <- table(data$DBH.Cls0)
> dbh_df <- data.frame(dbh_table)
> dbh_df
   DBH.Cls0 Freq
1        18    5
2        22   10
3        24   35
4        26   45
5        28   30
(中略)
20       58    5
21       60    5
22       72    5

としてデータフレームdbh_dfを作成したのですが、2列目のデータについては

> dbh_df[1,2]
[1]5

として欲しい"5"だけが得られるのですが、1列目のデータについては

> dbh_df[1,1]
[1] 18
22 Levels: 18 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 ... 72

となってしまい、必要な"18"の他に余分な1行が表示されてしまい、

x <- dbh_df[1,1]; y <- dbh_df[1,2]

としても、xに余分な1行が入ってしまい、処理できずに困っています。 どなたか、原因と対策をご教授いただけますでしょうか。 よろしくお願いします。

平行座標プロットの各ラインの選択

EDA (2007-06-21 (木) 19:01:15)

 以前、マウスによるポイントの選択方法が掲載されていましたが、データマイニングで試用されている平行座標プロット(パラレルグラフ)をマウスで選択して、選択ラインの情報を見る方法はあるのでしょうか?

sub()で文字列を置き換えると,特定の文字で文字化けする

奥村泰之 (2007-06-21 (木) 13:38:26)

御世話になっております。 下記のコードに示したように,sub()で文字列を置き換えようとすると, 文字化けする現象が出て困っております。 対応策を御存じの方,お教え頂けると幸いです。

> sessionInfo()
R version 2.5.0 Patched (2007-04-27 r41346) 
i386-pc-mingw32 
locale:
LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;
LC_NUMERIC=C;LC_TIME=Japanese_Japan.932
> sub("AA", "山本", "AA氏")
[1] "山本氏"
> sub("AA", "五十嵐", "AA氏")
[1] "五女虫?x81"

散布図:同じような値を重ならることなく、横並びで表示したいのですが

ちょろ (2007-06-20 (水) 14:29:14)

散布図を加工としております。
しかし、plot関数ではデータが一直線に並んでしまい、同じような値を重ねることなく、全ての個々の値の分布を直感的にとらえることは困難です。
一つ一つのドットが重ならないようにしたいのですが、どのように行えばよいか分からず困っております。
イメージ的には以下のURLの一番上にある画像の左上部のようなPlotをイメージしております。
http://www.ne.jp/asahi/room/kuro/ScatterMakerReadMe.html

ご教授いただければ幸いです。

3次元のデータをX-Yと色分けでplotする方法

ぼう (2007-06-19 (火) 17:59:04)

お世話になります。XYZの3次元のデータがあり、Zを色分けしてx-y2次元のプロットに表示したい場合に以下のようにifを使って、一個づつ指定して離散的に色分けして表示することができますが、この部分を連続的にZの値にしたがったグラデーションで指定する方法をご存知の方がおりましたらお教え頂ければ幸いです。

mat <- matrix(rnorm(30),nrow=10)
plot(mat[,1],mat[,1],col=
 ifelse(mat[,3]>0.6,2,
   ifelse(mat[,3]>0.3,3,
     ifelse(mat[,3]>0,4,
       ifelse(mat[,3]>-0.3,5,
         ifelse(mat[,3]>-0.6,6,
         7
         )
       )
     )
   )
  )
)

plotでx軸とy軸を任意の座標で交わらせることはできますか?

くに (2007-06-19 (火) 10:24:13)

plotでx軸、y軸を(0,0)などの任意の座標で交わらせることはできますか?

kuni.png

のように。よろしくお願いします。

等高線グラフィックのスケールについて

V9 (2007-06-13 (水) 14:31:14)

たまたま等高線の話題なので、続けさせていただきます。
contourで描いた等高線に、二次元の点をプロットしたく思っています。
単なるcontourではスケールをぴったり合わせられるのですが、filled.contourでは、凡例表示分だけ微妙にずれてしまうようです。
スケール(軸のメモリ)を合わせるのに、何かうまい方法はありますでしょうか。

等高線用の外積計算

(2007-06-13 (水) 13:43:54)

等高線を描くために外積を計算しようとしていますが、lengthの長さがうまく設定できないためか、以下のようなエラーメッセージが出てしまいます。。
何かうまい設定法がございましたら、ご教示頂けると幸いです。

> x<-seq(-4,4,length=20)
> y<-seq(-10000,4000,length=20)
> z<-outer(x,y,function(xi,yj) 100/(1+exp(-(0.279-1.0344*x-0.0001*y)))
+ )
以下にエラーouter(x, y, function(xi, yj) 100/(1 + exp(-(0.279 - 1.0344 *  : 
        dim<- : dims [product 400] は object [20] の長さに整合しません

無題

(2007-06-10 (日) 20:00:15)

sourceで時系列オブジェクトを読み込もうとしたら、下記のエラーがでました。

以下にエラーattributes(.Data) <- c(attributes(.Data), attrib) : 
       不正な時系列パラメータが指定されました

このエラーはどのような意味なのでしょうか。
読み込もうとしているデータは以前に読み込みを成功した事があるデータを多少中身を変更しただけのものです。

ヒストグラムのy軸目盛(スケール?)の変更は可能でしょうか。

くに (2007-06-07 (木) 12:14:30)

 ヒストグラムのy軸目盛(スケール?)の変更は可能でしょうか。
 面積が0.3ヘクタールの調査区で樹木の胸高直径を測定しました。このデータから、直径階毎の本数分布をhist関数で作図したいと思います。ただし、そのとき縦軸の目盛を試験区(0.3ha)あたりの本数ではなく、1ヘクタールあたりの本数にしたいのです。
 そのようなことは可能でしょうか。よろしくお願いします。

和や部分リストを得る方法は

kd (2007-06-06 (水) 10:16:48)

リストを与えて,和や部分リストを得たいのですが方法はあるでしょうか? はじめに下記のようにしました.

> dwt<-dwt(x,n.levels=8, boundary="reflection")
> str(dwt@W)
List of 8
$ W1: num [1:300, 1] -0.188  0.166 -0.150  0.170  0.115 ...
$ W2: num [1:300, 1]  0.6416  0.5408  0.0322 -0.3626 -0.2186 ...
  :
  :

次に,この dwt@W に対して和や部分リストを得たい思っています.例えば,

dwt@W[1:4]

に対して

dwt@W[[1]]+dwt@W[[2]]+dwt@W[[3]]+dwt@W[[4]]

を得たり,

dwt@W[1:4]

に対して

list(dwt@W[[1]][1:150],dwt@W[[2]][1:150],dwt@W[[3]][1:150],dwt@W[[4]][1:150]) 

を得たいと思っています.

指定データを除いたプロット

kd (2007-06-03 (日) 15:05:17)

下記のように,指定データを除いてプロットすることは可能でしょうか?

最初に下記を行いました.

> newx<-modwt(x,n.level=8,boundary="reflection")
> str(newx2)
Formal class 'modwt' [package "wavelets"] with 11 slots
  ..@ W         :List of 8
  .. ..$ W1: num [1:3061, 1] -1.82e-06  3.58e-05 -1.12e-04  9.52e-05  4.66e-05 ...
     :
     :
  ..@ V         :List of 8
  .. ..$ V1: num [1:3061, 1] -2.14e-06  3.91e-05  1.48e-04  1.21e-04  7.28e-06 ...
     :
     :
> plot(newx)

このplot(newx) を実行すると,x,newx@W[1],newx@W[2],...,newx@W[8],newx@V[8] をプロットしてくれました.
次にnewx@V[8] だけを除いたプロットを行いたいので,下記の ???? に当たるような操作(?)を行うのかなと思っているのですが可能でしょうか?

> newx1<-????(newx)
> plot(newx1)

またnewx@W[8] だけをプロットすることも可能でしょうか?

> newx2<-????(newx)
> plot(newx2)

locfit パッケージのロードに失敗

kd (2007-06-02 (土) 21:23:34)

locfit を v. 2.5 for MacOSX 上でロードしようとすると,下記のようなエラーが出て,ロードできないようです.

要求されたパッケージ akima をロード中です
エラー: パッケージ 'akima' をロードできませんでした
追加情報: Warning message:
'akima' という名前のパッケージはありません in: 
 library(pkg, character.only = TRUE, logical = TRUE, lib.loc = lib.loc) 

locfit は下記からダウンロードしたものです.
ftp://ftp.u-aizu.ac.jp/pub/lang/R/CRAN/bin/macosx/universal/contrib/2.5/locfit_1.5-3.tgz
ちなみにwavelets等の他のパッケージは正常にロードできて動いています.
ftp://ftp.u-aizu.ac.jp/pub/lang/R/CRAN/bin/macosx/universal/contrib/2.5/wavelets_0.2-2.tgz

カレントディレクトリのファイル名一覧を取得

mori (2007-06-01 (金) 10:41:10)

カレントディレクトリに存在するファイル名の一覧をベクトル形式で取得したいのですがそのような関数はないでしょうか?たとえば、カレントディレクトリに file1 file2 file3 があったら c("file1", "file2", "file3") を返すような関数です。

TIFFファイルをreadLinesで読み込みたい

akira (2007-05-31 (木) 20:22:00)

測定器が出力するTiffファイルの1行目に測定条件が記入されています。エディター(xyzzy)では確認できるのですが、Rで読み込むとエラーになって読み込めません。

> x <- readLines("test.tiff", n=1)
Warning message:
 'test.tif' に関する readLines で不完全な最終行が見つかりました

画像ファイルをテキストで読み込む方法を教えてください。

OS:WinXPSP2
R version 2.5.0 Patched (2007-05-04 r41429) i386-pc-mingw32 です。

オンボードRAIDは使ってますか?

通りすがりの佐々木 (2007-05-31 (木) 16:22:29)

R用PC(Athlon64,3200,2G,WXPSP2)をMBオンボードのRAIDを使っていたのですが、システム領域(RAIDなし)とデータ領域を独立したHDD(RAID1)に分けてしました。先月のはじめ、起動中のリソース使用率を見てみたら、いままで100%くらいだったのが70%になっていました。そろそろ再インストールかなと思っていたら、システムのHDDが突然死されました(RAIDなし!!)。BIOSのSMARTでディスクを交換せよとの警告が表示されてしまいました。データはデータ用のHDDに保存し、スクリプトはシステムにいれていたのですが、大部分のデータは幸いにも生きていましたが、1年分のスクリプトが消失しました。けっこうキツイ・・・。やはり、CPUを100%24時間*7日なんてことをずっとやっていたからでしょうか、アクセスが多くなるとHDDの熱がすごいんですね。CPUばかり気を使っていたので、HDDは対策が疎かになっていたのでした。反省。RAID2系統+ファン増設を行ったのはいうまでもありません。

2変数関数の等高線プロットについて

GG (2007-05-31 (木) 11:55:06)

2変数(x、y)関数の値(z)を求めることなく、
式の形から等高線を直接描ける方法はあるのでしょうか?
例えば、z=1/(1+exp(-(10x-3y)))のようなグラフを直接3次元で描画し、
適当に等高線で色分けした後に、
さらに重ねがきで幾つか点もプロットしたいと思っています。

日本語入力してもグラフが表示されない

のり (2007-05-27 (日) 20:39:34)

Rインストール後、コマンド(R console)で日本語入力しても全くグラフが表示されません。
(例)

x=0:50
y=dbinom(x,50,0.25)
plot(x,y,type=’h’,xlab=’x’,ylab=’y’,main=’二項分布’)
+

(注、type=hはヒストグラム表示、xlab、ylabはx、y軸の名前、mainはグラフのタイトルを表す。日本語を入力しない他のコマンドでは、グラフが表示されます。)
(使用環境 windowsXP)
この解決方法をご存じの方がおりましたら、ご教示いただけないでしょうか?
(尚、この質問は最初、初級者コースが閉鎖されていると認識し、中級者コースに投稿しました。ご指摘いただきましたokinawa様にはお手数おかけしましたことをお詫びいたします)

Macでパッケージvcdがロードできません

ピーター (2007-05-25 (金) 18:46:30)

Mac OS X 10.4.9, R 2.5.0 GUI 1.19(4308)を使っています
「パッケージとデータ」のCRANからvcdをインストールし、「Rパッケージマネージャー」でvcdの状態のところをクリックしてもロードできません。コンソールには

要求されたパッケージ colorspace をロード中です
エラー: パッケージ 'colorspace' をロードできませんでした
追加情報: Warning message:
'colorspace' という名前のパッケージはありません 
    in: library(pkg, character.only = TRUE, logical = TRUE,  lib.loc = lib.loc) 

とあります。また、library(vcd)でも同様でした。
一体なぜののでしょうか。教えてください。お願いします。

三次元プロットについて

dmc (2007-05-23 (水) 13:42:22)

scattaerplot3d関数で三次元プロットした点に、persp関数で二次元曲面を描きいれようと思っているのですが、軸やグラフの角度がうまく合いません。
点と曲面をうまくひとつのグラフ内に描く方法がございましたら、教えて頂けないでしょうか。

データがマイナスとなる個数

port (2007-05-23 (水) 12:02:52)

Rの超初心者です。
10000個くらいのデータがあって,そのデータの中でマイナスとなるデータ個数を知りたいのですが,どのうようにすればよいでしょうか?
色々調べたのですが,よくわかりませんでした。
どのたかご教授ください。

Excelからのコピペが上手くいきません

みかん (2007-05-14 (月) 04:58:23)

「Tips紹介」→「R にファイルを読み込む tips 集(暫定版)」→
「Excel からコピーしたセル範囲を R に読み込む (何でも掲示版の青木繁伸さんの記事を転載)」
に記載されております方法が上手くいきません。
記載事項の通り、

> from.excel <- function(nc)
+ {
+        matrix(scan(""), byrow=TRUE, nc=nc)
+ }
> from.excel(3)

としたのち、 エクセルで

1 F 4
2 F 3
3 M 2

という3×3のセル範囲をコピーし、貼り付けると、

> from.excel(3)
1: 1F4
1: 2M3
以下にエラーscan("") : scan 関数は '$s' を期待したのに、得られたのは '$s' でした
> 3F2
エラー:"3F2" に構文エラーがありました
> 

というメッセージが出てきます。
一方同じExcelのコピー範囲を一度テキストエディタに貼り付け、"?t"を" "に置換してからコピーし、

> x <- read.table(stdin())

の後に貼り付けると、上手くいきます。
しかしこの方法でも、Excelでコピーしたそのままを貼り付けると、

> x <- read.table(stdin())
0: 1F4
1: 2M3
2: 3F2
3: 
> 

となってしまいます。
どうもExcelでコピーした列セル間の区切り子が、R上で認識されていない様子です。
どうしてこうなってしまうのか、ご教授をお願いいたします。
当方WindowsXP上で、ver.2.2.1を使用しております。Excelのバージョンは2000です。
よろしくお願いいたします

直交実験を計画してくれる関数

TH (2007-05-13 (日) 09:21:44)

直交実験を計画してくれる関数はどこかのRパッケージに含まれていないでしょうか?"Orthogonal Array Design"を中心にいろいろ検索をかけても見つかりません.S-PLUSには直交実験を計画してくれるとても便利な 関数oa.design() があります.もちろんoa.design() と打てば,その定義が画面にでてきます.その中に出てくる関数も含めて(途中で追えなくなるので,追えるものだけ)まとめて,Rの画面で流すとエラーがでてしまい,移植に失敗します.中身を少し読んでも私の実力ではとうてい書き換えられません.直交配列による実験は我が国では,大変多用されているので,どこかにないだろうかとお聞きする次第です.

確率微分方程式

SDE (2007-05-10 (木) 19:02:49)

確率微分方程式で検索してもヒットしなかったのですが、
解を求めるなど、確率微分方程式を取り扱ったパッケージは無いのでしょうか?
Rの守備範囲だと思うのですが…

Fizz-Buzz問題

X Jr. (2007-05-09 (水) 22:20:18)

どのカテゴリに書こうか迷ったのですが、とりあえず初級Q&Aにします。
どうしてプログラマに・・・プログラムが書けないのか?」という翻訳記事の中の「Fizz-Buzz問題」が一部のネット上で話題になっています(例えばはてなブックマーク)。その内容は、「1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。」というものです。Rならどのようなプログラムができますか? お遊び感覚でお願いします。

.RData の怪

昔の名前で出ています (2007-05-09 (水) 16:13:25)

R 2.5.0 をインストールして、使おうとしている途中です。~
ディレクトリの設定をして、q() で「作業スペースを保存」しても、実際には何も保存されません。~
それでは、と、「作業スペースの保存」をして、できた .RData をダブルクリックしたら、R 2.4.0 が立ち上がります。なぜでしょう。

> sessionInfo()
R version 2.5.0 (2007-04-23) 
i386-pc-mingw32 

locale:
LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932
;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932

attached base packages:
[1] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"  
[7] "base" 
> # この後、ワーキングディレクトリを設定    
> getwd() # 設定の確認
[1] "C:/Documents and Settings/Owner/デスクトップ/r"
> # 作業スペースの保存
> save.image("C:??Documents and Settings??Owner??デスクトップ??r??.RData")
> #ここで、いったん終了
> q()

デスクトップ??r??.RData をダブルクリックすると、なんと、R 2.4.0 が立ち上がる!

> sessionInfo()
R version 2.4.0 (2006-10-03) 
i386-pc-mingw32 

locale:
LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932
;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932

attached base packages:
[1] "methods"   "stats"     "graphics"  "grDevices" "utils"     "datasets" 
[7] "base"

hist で「'breaks' の数が無効です」とは?

norion (2007-05-06 (日) 21:50:20)

hist(5,x)というカキコミをして、(xにはあらかじめ数値列がつくってある)

'breaks' の数が無効です というエラーメッセージがでます。

5のところを500とかに変えても同じです。データの数は全部で2000足らずです。
よろしくお願いします。

複数ウインドウを開いて、描き出すウインドウを選択したい

ななし (2007-05-05 (土) 13:35:36)

x11() #ウインドウ一つめ
plot(1:10)
x11() #ウインドウ二つめ
plot(2:11)

このとき一つ目のウインドウにグラフを追記したいのですが可能でしょうか?
ひとつのウインドウを分割する場合、split.screenで分割して、screenで描き出す場所を指定するというのがありますがそれのウインドウ版のようなのを探しています。
御存じの方教えてください。
R version 2.4.0
os linux-gnu vine/linux4.0

garchFit で「引数 "formula" がありません」というエラー

たく (2007-05-01 (火) 12:46:50)

gaarchFitで解析したいものがあり、試しにUKgasでやってみたらこういうエラーが出ました・・・。
どうすれば使えるようになるのでしょうか。 バージョンは2.4.1、OSはXPです。

> data(UKgas)
> library(fSeries)
> UKg.d<-diff(UKgas)
> UKg.m <-garchFit(formula.mean =~arma(2,0),formula.var=~garch(1, 1),series = UKg.d)
以下にエラー.modelSeries(fake = FALSE, lhs = TRUE) : 
       引数 "formula" がありませんし、省略時既定値もありません

INDSCAL(個人差MDS,3元データのMDS)の関数

TH (2007-04-29 (日) 08:13:46)

私が探した範囲ではRでは,多次元尺度法を行う関数として,以下の関数が用意されています.

 計量的多次元尺度法のための関数
      パッケージ'stats'の関数 cmdscale
 非計量多次元尺度法のための関数
      パッケージ'MASS'の関数 isoMSD ,関数 sammon 
      パッケージ'vegan'の関数 metaMSD 

しかし個人差を扱う,3元データ用のMDSモデルのINDSCALを実行する関数がみあたりません.MDSのなかでは有名な分析方法なので,私の探し方が悪いようにも思うのですが,どなたかINDSCALを実行する関数をご存知の方がいらっしぃませんか.

R/qtl が load できません

saoki (2007-04-27 (金) 23:29:18)

R/qtlがloadできません。初めてRを使う初心者です。どなたかご教授いただけましたら幸いです。
Mac OSX バージョン10.4.7のintel MacにR-2.50をインストールしqtl_1.05-2.tarでパッケージqtlを出してlibrary中に入れ、library(qtl)とtypeしたところ以下のように出てきます。

> library(qtl)
Error in dyn.load(x, as.logical(local), as.logical(now)) : 
共有ライブラリ 
'/Library/Frameworks/R.framework/Versions/2.5/Resources/library
/qtl/libs/i386/qtl.so' を読み込めません
  dlopen(/Library/Frameworks/R.framework/Versions/2.5/Resources/library/qtl/libs/ i386/qtl.so, 6): 
Library not loaded: /Library/Frameworks/R.framework/Versions/2.4/ Resources/lib/libRlapack.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/2.5/Resources/library/qtl/libs/i386/qtl.so
 Reason: image not found
 以下にエラーlibrary(qtl) :  .First.lib は 'qtl' に対して失敗しました

 よろしく御願いいたします。

サンプルについて

goto (2007-04-25 (水) 17:57:25)

どなたか教えてください。
以下のサンプルでは要素(球体)やノードを大きくしたり加工しています。
どのようにしたらこのようになるのでしょうか。
gplot関数のパラメータを変更するのでしょうか。

http://erzuli.ss.uci.edu/R.stuff/sna/screenshots/sna_sample3.png
sna_sample3.png

Rでお絵かきツール

ロトリング (2007-04-24 (火) 21:24:31)

 Rで出力したグラフに、ポリゴンやテキストをマウスで描画できるお絵かきツールのようなものはないでしょうか?

95%信頼楕円

suz (2007-04-21 (土) 11:23:24)

95%信頼区間楕円を描く方法として以下の操作は正しいでしょうか?

x = rnorm(100, sd=1)
y = rnorm(100, sd=3)
plot(x, y)
library(ellipse)
r = cor(x, y)
stdev = c(sd(x), sd(y))
centre = c(mean(x), mean(y))
polygon(ellipse(r, scale=stdev, centre=centre, level=0.95))

mfrowの値とplotmeansの動作

suzu (2007-04-20 (金) 16:32:43)

グラフィックパラメータpar(mfrow=c(行数, 列数))の行数によってplotmeansの動作が異なります。

library(vegan)
data(BCI)
sp.n = specnumber(BCI)
group = gl(5, 10)
library(gplots)
par(mfrow=c(7,1)) # 行数によってplotmeansの動作が異なる
plotmeans(sp.n ~ group)

において

par(mfrow=c(6,1))

の場合、正常に動作しますが、

par(mfrow=c(7,1))

の場合、group 4のエラーバーが表示されず、以下のWarning messagesが出力されます。

Warning messages:
1: 長さゼロの arrow は角度が不定ですので,スキップされました 
2: 長さゼロの arrow は角度が不定ですので,スキップされました 

エラーバーを正常に表示させるためには、どうすればよろしいでしょうか?

使用環境 R version 2.4.0 (2006-10-03) i386-apple-darwin8.8.1 参考文献 http://cse.naro.affrc.go.jp/takezawa/r-tips/r/68.html

表形式でないファイルの読み込み

mori (2007-04-19 (木) 15:03:13)

ファイルからデータを読み込む方法に関して質問があります。

[test.txt]
milk bread
bread butter
beer
milk bread butter
bread butter

上のようなtest.txtからデータを読み込んで下のように作ったリストと同じリストを返す関数がほしいのですがどのようにファイルを読み込めばよいでしょうか。read.table()は列数が同じものしか読み込めないらしくうまく読み込めません。アドバイスお願いします。

> x <- list(c("milk","bread"),
c("bread", "butter"),
c("beer"),
c("milk", "bread", "butter"),
c("bread", "butter"))

garchFit(パッケージfSeries)のエラーについて

ケンゴ (2007-04-14 (土) 16:05:43)

こんにちは、garchFit(パッケージfSeries)関数を使用し時系列データの計算を
おこないたいと思い以下のような処理を致しました。
結果「エラー:!missing(data) is not TRUE」と表示されうまく計算できません。
どこか間違っているのでしょうか?教えて下さい。
使っているのはR2.4.1 OSはXPです。

> library(fSeries)
> UKgas
       Qtr1   Qtr2   Qtr3   Qtr4
1960  160.1  129.7   84.8  120.1
1961  160.1  124.9   84.8  116.9
1962  169.7  140.9   89.7  123.3
1963  187.3  144.1   92.9  120.1
1964  176.1  147.3   89.7  123.3
1965  185.7  155.3   99.3  131.3
1966  200.1  161.7  102.5  136.1
1967  204.9  176.1  112.1  140.9
1968  227.3  195.3  115.3  142.5
1969  244.9  214.5  118.5  153.7
1970  244.9  216.1  188.9  142.5
1971  301.0  196.9  136.1  267.3
1972  317.0  230.5  152.1  336.2
1973  371.4  240.1  158.5  355.4
1974  449.9  286.6  179.3  403.4
1975  491.5  321.8  177.7  409.8
1976  593.9  329.8  176.1  483.5
1977  584.3  395.4  187.3  485.1
1978  669.2  421.0  216.1  509.1
1979  827.7  467.5  209.7  542.7
1980  840.5  414.6  217.7  670.8
1981  848.5  437.0  209.7  701.2
1982  925.3  443.4  214.5  683.6
1983  917.3  515.5  224.1  694.8
1984  989.4  477.1  233.7  730.0
1985 1087.0  534.7  281.8  787.6
1986 1163.9  613.1  347.4  782.8
> UKg.d<-diff(UKgas)
> UKg.m<-garchFit(formula=~arma(2,0)+garch(1,1),series=UKg.d)
エラー:!missing(data) is not TRUE

※条件付き平均(mean)=arma(2,0)
※条件付き分散(variance)=garch(1,1)

Rにインストールは必要ない?!

豊田秀樹 (2007-04-14 (土) 07:03:17)

信じられないようなことですが,ちゃんとインストールした
Rのフォルダを単純にUSBフラッシュメモリにコピーして
おくと,そのUSBフラッシュメモリを持ち歩くだけで,Rをインストール
していない計算機でRを使えます.(そのフォルダは,全ての
パッケージがインストールされており1ギガくらいの容量です)
更にそのUSBフラッシュメモリのRののフォルダを単純に
別の計算機にコピーするとその計算機でもRが使えるようになります.
ここで「コピーで済むなら何のためのインストールだったん
だろう?」という疑問が沸いてきました.きっとこの方法で
コピーを繰り返すと「何か困ったことがそのうち起きる」あるいは
「何か使えない高度な機能がある」としか思えません.
文科系の学部なのでインストールはハードルが高い学生もいますが,
コピーだけならだれでもでき,各学生に任せられます.
とても便利なので,つい学生にも薦めて見たくなっていますが,
あとで変なことが起きると困るので,どなたか「インストール
しないと,こういう点で後で困るよ」というアドバイス
がありましたら教えてください.それともインストールなんて
必要ないのでしょうか?そんなことないですよね.

Windows版コンソールで使えるフォント

mori (2007-04-12 (木) 14:32:35)

Windows版のR2.4.1なのですが、GUIプリファレンスで指定できる日本語フォントがCourierとMSゴシックとMS明朝しかありません。他の日本語フォントを指定することはできないのでしょうか?

2変量散布図とヒストグラム図

teru (2007-04-11 (水) 19:56:49)

xとyの2変量散布図と,xおよびyのヒストグラムを書きたいのですが,
Rではどのようにすればいいのでしょうか?

  **|      oo
  ***|     ooo
  ****|   oooo
  ***|   oo
   **|  oo
   *| o
    -------------
     *********
      *******
      ****
       **

ハッシュ

JR (2007-04-11 (水) 14:24:09)

Rにはperlなどのスクリプト言語でいうハッシュに相当するデータ型はないのでしょうか。例えば、

a => 1
b => 2
…
z => 26

というハッシュと

v=c("a","b",…"z")

というベクトルがあったとき、vの各要素をハッシュのキーとして、値に置換するような処理をしたいです。データフレームとsubset関数を使えば強引にできるのですが、遅いです。よい方法はありますでしょうか?

区切り文字が1文字以上の空白で、#を含むNAに当たる文字が要素に含まれるテーブルの読み込み

TT (2007-04-07 (土) 17:30:52)

こんにちは、以下のような、テキストファイルに入ったテーブルを読み込もうとしています。区切り文字は1文字以上の空白で、-1.#INDは不定値なのでNAと読ませたいと考えています。

1  2 3 4 5
11 12 13 -1.#IND 15

これを、

tt<-read.table("hoge.txt")

で読み込もうとすると

'2' 行目には,5 個の要素がありません

というエラーが出ます。どうも2行目の4個目の要素の-1.#INDの#をコメントの始まりと解釈してそのあとを読まないようです。そこで、今度は、

tt<-read.table("hoge.txt",sep=" ")

とすると、今度は、1行目の1個目と2個目の要素の間の2個の空白が、2個区切り文字がありその間に、空の要素があると判断されて、1行目は6個の要素があると判断され、

'2' 行目には,6 個の要素がありません

とエラーが出ます。何とか、1文字以上の連続した空白を1個の区切り文字と判断させて、-1.#INDをNAと判断して読み込む方法はありませんでしょうか?

パッケージのインストール

tyamada (2007-04-06 (金) 18:13:53)

教えてください。Rのパッケージ(たとえば、vegan)をインストールしたいと思っています。
使っているのはR2.4.1 OSはビスタです。

chooseCRANmirror()
と打って、適当なミラーを選択し(日本の3つとも試しました)
install.packages(c("vegan"))
と打ちますと、はじめは調子よくいっているように見えるのですが、少しすると

URL 'ftp://ftp.u-aizu.ac.jp/pub/lang/R/CRAN/bin/windows/contrib/2.4/vegan_1.8-5.zip' を試しています
ftp data connection made, file length 1176434 bytes
開かれた URL
downloaded 1148Kb

以下にエラーzip.unpack(pkg, tmpDir) : ファイル 'C:/Program Files/R/R-2.4.1/library/file7bb9902/vegan/chtml/vegan.chm' を開くことができません

などというメッセージが返されて、止まってしまいます。

また、ローカルにあるZIPファイルからのインストールでも、同じエラーメッセージが返されてしまいます。
どこが間違っているのでしょうか?教えてください。

ファイルタイプの識別

cam (2007-04-02 (月) 11:33:16)

Rではsave関数でXDR形式のバイナリデータを作ることができますが、データをこのXDRファイルで保存しておく場合と、csvのようなテキストで保存しておく場合と、色々あると思います。
データファイルを読み込む時に、まずはファイル名からこのファイルがXDRなのか、テキストなのかを判別して処理を切り替えたいのですが、ファイルタイプを識別できるような方法はありますでしょうか?

作業スペースの日本語が文字化けしてしまいます

akiba (2007-03-31 (土) 21:40:55)

http://cran.md.tsukuba.ac.jp/から、R-2.4.1-win32.exeをインストールしたのですが、作業スペース上の日本語が文字化けしてしまっています。
文字化け部分をテキストに貼り付けると日本語としてちゃんと表示されます。
どうすれば、文字化けを直すことができるでしょうか。
ご教示をお願いします。

パッケージのインストールができません

奥井正俊 (2007-03-29 (木) 13:02:38)

Rをインストールしたのちに、パッケージのインストールを試みましたが、つながりません。「以下にエラーopen.connection(file,"r"):コネクションを開くことができません 追加情報:Warning message:'cran.r-project.org'をポート80でコネクトできません」と出ます。どうすればよいのかご教示をよろしくお願いします。

Rの2軸プロット

nick (2007-03-28 (水) 19:52:19)

Rのプロットで,y軸の主軸,2軸の設定は可能でしょうか?
色々調べたのですが,わかりません。
どなたかご存知の方お願いします。

プロットしたい行を読みとばしたい

内藤 (2007-03-28 (水) 15:41:16)

Rの初心者です。
プロットしたいデータが10000行あって,行を100行おきとかに読み飛ばしたいのですが,何かコマンドみたいなものはあるのでしょうか?
gnuplotでいうとevery 100みたいな。
以上,どうぞよろしくお願いします。

行列の1列目の中からある項目だけを取り出す

norion (2007-03-27 (火) 23:56:46)

他で作った表をRに読み込んで作業しようとしています。表全体の読み込みはできました。
行列の1列目には色々な名前が書いてあるんですが、この中からひとつの名前を指定し
指定した名前に1列目が該当している行の全ての列を取り出したいのです。
どのような関数を書けばそれが可能でしょうか。

不適切な質問だったらすみません。

関数が効かない

sunny (2007-03-26 (月) 23:01:23)

初めて書き込みします。
Rを使い始めてわずかの、全くの初心者です。
barplotと入れても、表示をしてくれなくなってしまいました。
どうやら、何かの弾みにbarplot関数が壊れてしまったようです。
壊れた関数を再設定するにはどうしたらよいのでしょう。

グラフのX,Yの刻み指定と目盛線の引き方

のっち (2007-03-23 (金) 00:45:59)

目的としては、CPUの負荷傾向を日々のCPU負荷状態(%)およびJOB稼働係数からグラフ化をしたいと思っております。
Rを入れて色々と調べているのですが、10, 20,30... といったY軸の刻み指定と任意の刻みでの目盛線の引き方が分かりません。
教えて君で申し訳ありませんが、ヒントなどいただけませんでしょうか。

小数以下が0を明示したいとき

X Jr. (2007-03-21 (水) 21:22:39)

例えば、

y <- 1:10/2; plot(1:10, y); text(1:10, y, y, pos = 1)

とすると、小数以下が0のものは整数部分のみが表示されますが、".0" も表示させたいときはどのようにすれば良いのでしょうか? よろしくお願いいたします。

nlsで出力される回帰係数の読み込みについて

myuhe (2007-03-14 (水) 18:55:45)

 はじめまして。Rのド素人です。次のことについて、ご教示いただければ幸いです。

 nls()を実行すると、例えば次のような結果が得られます

Nonlinear regression model
 model:  inverseHeight ~ 1/(A * DBH^B) + 1/C
  data:  testtrees
        A          B          C
0.2689986  3.1630292 24.6279807
residual sum-of-squares:  0.0003014474

 この中の回帰係数(上の例では、0.2689986 3.1630292 24.6279807)を利用して、続けて処理を行いたいと考えています。
 続けて行いたい処理は、出力された回帰係数で任意の独立変数の値の時の従属変数の値を連続して取得していくというものです。独立変数は、あくまで任意です。

 最初は、この結果をデータフレーム等に変換して、そこから回帰係数を取得しようと考えていたのですが、出力結果は独自のオブジェクトのようで変換できませんでした。
 
 predict()を使った方法も検討しましたが、任意の独立変数の値をうまく指定することができませんでした。

 初歩的なものかもしれませんが、よろしくお願いします。

作成したモデル(予測式)の保存・呼び出し方法

ADMET modeler (2007-03-09 (金) 15:37:11)

こんにちは。初めて投稿します。超初心者で非常に基本的な質問で恐縮なのですが、教えてもらえるとうれしいです。

仕事の関係で判別予測モデル(手法としてはBayesian, Random Forest, Support Vector Machineなどです)を作成して利用しようと考えているのですが、一旦作成したモデルを保存する方法がわかりません。

たとえば、Random Forestの場合、

hlm <- read.csv('C:/work/data.csv',head=TRUE)
trainset <- hlm[1:1952,]
testset <- hlm[1953:2439,]
model <-  randomForest(Class ~ ., data = trainset)

というふうにモデルを作成して、
そのままpredictすると別のデータを予測できますよね。

pred <- predict(model, testset)

しかし、できればここで作成したモデルを保存しておいて、後日呼び出して再び使いたいのです。もちろん、その際にもう一度モデルを作成しなおしてもいいのですが、データが多いのでモデル作成に時間がかかってしまいます。

この例では、Random Forestですが、一般的な回帰モデルなども含めて一度作成した「モデル」を保存・読み込みをするにはどのように行うか教えてください。

連続する整数をまとめる方法

きゃらっと (2007-03-08 (木) 08:31:34)

初めて投稿させていただきます.初心者です.
(1:3)が(1,2,3)やとなる変換の逆を行わせる方法を教えてください.

(1,2,...100, 250,251,...500, 10001, 10002,... 10005)
変換後
(1:100, 250:500,10001:10005)
よろしくお願いします.

実験計画法

ちゃい (2007-03-05 (月) 21:56:05)

Rで実験計画法ができるのでしょうか

integrate()で一様関数を積分できますか?

藤巻十三 (2007-02-28 (水) 17:52:22)

こんにちは。
表題の一様関数の積分は例えで、具体的にやりたいことは他にあるのですが、例として簡単なので取り上げさせて頂きたくお願い申し上げます。

f<-function(x) 1
integrate(f=f,lower=0,upper=1)

とすると答えとして「1」を期待したいところでしたが、

以下にエラーintegrate(f = f, lower = 0, upper = 1) : 
       evaluation of function gave a result of wrong length

となります。この原因と回避する方法を教えて頂けませんか?
尚、「f<-function(x) ceiling(x)」なら答えは1が返ってきますが、
「f<-function(x) max(x,1)」では駄目です。

リスト内の各ベクトルから特定の要素のみを抽出する方法

生物系大学院生 (2007-02-26 (月) 06:11:57)

こんにちは、初めて質問させていただきます。
下記のようにして作成したブートストラップデータのリスト(z)内の各ベクトルから、特定の要素のみを抽出するいい方法をご存知ないでしょうか?

> x<-c(1:100)
> y<-function(){sample(x,100,replace=TRUE)}
> z<-lapply(1:100,function(i)try(y()))

塩基配列データに基づくパラメータの推定値の分散をブートストラップ法で求めたいと考えています(式は100塩基座の100回のブートストラップ試行の場合です)。推定するパラメータの性質上、情報をもつ特定の塩基座(informative site;例えば1〜10)がそれぞれ何回各ブートストラップの試行で利用されたかが重要になってくるため、それだけを抽出したいと考えています。

各ベクトルについては、

> z[[1]][z[[1]]<11]

として11未満の数字のみを抜き出す方法や、

> sort(z[[1]])

として先頭にinformative siteを集める方法にはたどり着いたのですが、これをリスト全体に適用する方法が分かりませんでした。
どなたかいい方法をご存知ないでしょうか?

陰関数の表示について

もも (2007-02-24 (土) 17:27:16)

単発の質問で申し訳ないのですが
陰関数を表示する関数、あるいはパッケージをご存知の方教えてくださいませ。

他言語で作成したプログラムのコンパイル方法について。

Y.Takenaka (2007-02-18 (日) 16:52:55)

mt19937の乱数の改良版が発表されていましたので、ラッパーを作った。そこでわからない事にぶち当たりました。altivecやsse2といったものにも対応しているんですが、対応させる方法がわかりません(コンパイルオプションを付ける方法です。R cmd SHLIB ファイル オプション?)もしよろしければ教えていただけませんか?情報が載ってる先がわかるだけでも助かります。

altivecやsse2と行ったものに対応していないものでは使えるようになったのです。公開してます。
http://sun.s167.xrea.com/Archives/HomePage.html (r_sfmt19937.cです。)

自己回帰係数の算出方法

千成 (2007-02-16 (金) 13:17:45)

ARモデルの自己回帰係数の算出方法として、
Yule-Walker法、最小二乗法、最尤法、Burg法などがありますが、何故デフォルトではYule-Walker法が選択されているのでしょうか?

Yule-Walker法が他の方法に比べてどの点で秀でているのでしょうか?
助言をお願い致します。

整数の割り算について

廣瀬_敏之 (2007-02-15 (木) 02:16:56)
次のような結果をどう考えればいいのでしょう? 98-BASICの整数の割り算の結果とあまりに違うのでとまどっています。 どちらが正しいか、という問題でない事はわかっていますし、整数部をとったり、切捨てなら専用の関数があることも知っていますが、それでも初心者にはとまどう『出来事』です。 各々のround(x,0)をとってから割り算をしていると考えても少しおかしいし・・・? この計算の定義までマニュアルに書いてあったでしょうか? いわゆる『R言語のマニュアル』と、過去の『初心者向けQ&A』に対する検索で『整数』『割り算』『除算』では、目的とする内容がヒットしないようなので、せめてキーワードだけでも教えてください。多分、私の探し方が足りないと思うので・・・(礼)。 使用環境はDOS/V系のパソコンで、『XP』と『Vista』で同じでした。それと

R version 2.2.0, 2005-10-06, i386-pc-mingw32 
attached base packages:
[1] "methods"   "stats"     "graphics"  "grDevices" "utils"     "datasets" 
[7] "base"     

です。本当は複数のバージョンでチェックすべきなのでしょうが、『R』の使用環境が変わっては困るので、そこまではご勘弁を。
なお『R』自体のソースコードをどうぞ、と言われましても、『C』は読めません。

> -2.3%/%1
[1] -3
> test<-c(-5.99999,-5.00001,5.00001,5.99999)
> test%/%1
[1] -6 -6  5  5
> test%/%2
[1] -3 -3  2  2
> test%/%2.5
[1] -3 -3  2  2
> test%/%2.2
[1] -3 -3  2  2
> test%/%2.7
[1] -3 -2  1  2
> test%/%-1
[1]  5  5 -6 -6
> test%/%-2
[1]  2  2 -3 -3
> test%/%-2.5
[1]  2  2 -3 -3
> test%/%-2.2
[1]  2  2 -3 -3
> test%/%-2.7
[1]  2  1 -2 -2

plot()のy軸ラベルと目盛りの表示について

kokko (2007-02-14 (水) 18:22:11)

x <- 1:5
y <- c(100,1000,10000,100000,1000000)
plot(x,y, log="y", xlab="X_num", ylab="Y_num", las=1)

こんにちは。このようにy軸を対数目盛にしたグラフを作製したいのですが、y軸のラベル "Y_num"を時計回りに45°回転させてx軸と平行にし、さらに目盛りの数値と重ならないようにしたいです。
また目盛りの値が "1 e+05" のように1とeの間にスペースが入ってしまい、このスペースを消したいのですがどのようにすればよいでしょうか?
どなたかよろしくお願いします。

Windows版 help() の表示方法の変更

X Jr. (2007-02-03 (土) 21:31:51)

R-2.4.0以降のWindows版で、インストール時にヘルプの表示形式(テキスト, chm, HTML)を選択できますが、これをインストール後に変更する方法を教えて頂けますでしょうか。

wilcox.exact で,P 値が 1 より大

ウィリアム (2007-02-02 (金) 07:57:57)

Wilcoxon signed rank test を行おうと思いましたが、同じ値がありましたので Exact Wilcoxon signed rank test を行いました。 小さなデータセットで試してみたところ P 値が 1 より大きくなりました。

> wilcox.exact(c(8,8,-5,-10))

       Exact Wilcoxon signed rank test

data:  c(8, 8, -5, -10) 
V = 5, p-value = 1.125
alternative hypothesis: true mu is not equal to 0

P 値が 1 より大きくなってよいのですか?

指定されたベクトルのサイズが長すぎます

szk (2007-02-01 (木) 09:03:07)

以下のエラーを解決する方法をお尋ね申し上げます。

> dist(rnorm(560327))
以下にエラーvector("double", length) : 指定されたベクトルのサイズが長すぎます

以下は正常に計算されます。

> dist(rnorm(560327)[1:10])

添付ファイル: file3dplot.png 955件 [詳細] filekuni.png 2183件 [詳細] filepairs.png 1908件 [詳細] filelegendmiss.png 2188件 [詳細] filefjok.PNG 1173件 [詳細] filehistgram.png 1078件 [詳細] filesna_sample4.png 1111件 [詳細] filehist.nag.png 2099件 [詳細] filess2.png 1946件 [詳細] filesna_sample3.png 1979件 [詳細] filebaz.png 1856件 [詳細] fileupload.png 2321件 [詳細] fileK_barplot.png 972件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-01 (日) 01:15:59