初級Q&A アーカイブ(8)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
COLOR(green){SIZE(20){初心者のための R および RjpWiki に...
新規投稿はできません。
----
-[[初級Q&A アーカイブ(7)]] (元記事が 2007-02-01 より 2...
-[[初級Q&A アーカイブ(6)]] (元記事が 2006-08-24 より 2...
-[[初級Q&A アーカイブ(5)]] (元記事が 2005-03-13 より 2...
-[[初級Q&A アーカイブ(4)]] (元記事が 2005-11-09 より 2...
-[[初級Q&A アーカイブ(3)]] (元記事が 2005-05-02 より 2...
-[[初級Q&A アーカイブ(2)]] (元記事が 2004-12-13 より 2...
-[[初級Q&A アーカイブ(1)]] (元記事が 2004-08-03 より 2...
----
#contents
----
**encodingをグローバルに設定したい [#c94cf68e]
>[[akira]] (2007-12-31 (月) 22:26:19)~
~
WinXPとubuntuを並用していています。ubuntuでSHIFT_JISを指...
仮にhogeの中身を~
test\n
テスト\n
test\n
とします。~
~
事前にencodingがわかっていれば、~
> con <- file("hoge.tsv", open="r", encoding="SHIF_JIS")
> x <- readLines(con)
> close(con)
> grep("hoge", x) <- SHIFT_JISを指定しないと In grep("ho...
1 2
としています。~
~
これを、UTF-8とSHIFT_JISを区別せずに使いたいのですが、グ...
~
localeのLC_CTYPEを変更すれば良いと思うのですが...~
> sessionInfo()
R version 2.6.1 (2007-11-26)
i486-pc-linux-gnu
locale:
LC_CTYPE=ja_JP.UTF-8;LC_NUMERIC=C;LC_TIME=ja_JP.UTF-8;LC...
LC_MONETARY=ja_JP.UTF-8;LC_MESSAGES=ja_JP.UTF-8;LC_PAPER...
LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=ja_...
LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets me...
loaded via a namespace (and not attached):
[1] rcompgen_0.1-17
//
- options(encoding="cp932") とかは, いかがでしょか. 尚, S...
- ありがとうございます。[[これ:http://www.okada.jp.org/RW...
**計数データのPoissonGLMによるモデルからカウントされる0の...
>[[idaten]] (2007-12-27 (木) 04:25:41)~
~
0が多い計数データ、solder.balanceというデータをGLMでPoiss...
> P=glm(formula = skips ~ ., family = poisson, data = so...
そのモデルからカウントされる0の数を調べたいときに、色々調...
"the obserbved zero counts are compared to expected numb...
> round( sum( dpois( 0,fitted(P) ) ) )
として得られると書いてありました。~
fitted(P)は推定されたPoisson分布の平均パラメータλですから...
そもそも訳が間違っていて、このコマンドは0を得るのでしょう...
もし情報不足、不適な記述がありましたら、申し訳ございませ...
//
- これは当てはめで得られたポアソン分布パラメータに対する...
- 説明不足で申し訳ありません。確かにfitted(P)は720の推定...
**マッピングのためのgridの設定 [#ved72b09]
>[[R 初心者]] (2007-12-23 (日) 22:13:19)~
~
こんにちは。~
空間統計学のためにRを使っている者ですが、次の質問に対して...
~
アメリカ(127.5W-67.7W, 24N-52N)領域を4x5のgridに区切り、...
すなわち、gridの中央点は070W42N,070W46N,...となります。~
しかし、この地理情報をshape fileとして与えなければ絵を描...
そのようなgrid情報はArcIGSで書かなければならないのでしょ...
もしそうであれば、ArcGISを一度も使ったことがないものに対...
どうかよろしくお願いします。~
//
- [[RjpWiki カテゴリー別見取り図]]からたどれるGIS関係記事...
- shape fileとして与えなくてはいけないという思い込みはど...
- ご回答頂きありがとうございます。確認が遅れ申し訳ござい...
- http://r-spatial.sourceforge.net/gallery/ ここに例題が...
- okinawaさま、ご回答頂きありがとうございます。今から勉強...
- 書き込みに気がつきませんでした。2kmグリッド(32x16)を作...
library(sp)
grd <- GridTopology(cellcentre.offset=c(932668,1350376),...
grd.sp <- as.SpatialPolygons.GridTopology(grd)
grd.d <- data.frame(runif(512), row.names=getSpPPolygons...
grd.spd <- SpatialPolygonsDataFrame(grd.sp,grd.d)
spplot(grd.spd)
#ref(sp-grid-20080112.png)
**正規分布とロジスティック分布の密度関数の重ね描きは? [#...
>[[idaten]] (2007-12-21 (金) 04:26:30)~
~
正規分布N(0,1)とロジスティック分布の密度関数の違いを図...
//
- xlim=c(-3,3) 等でx軸作図範囲を共通にしたら。 -- &new...
- これで
plot(x <- seq(-4, 4, .1), dlogis(x), ylim=c(0, .5), type...
points(x, dnorm(x), type="l", col="red")
どうでしょう -- &new{2007-12-21 (金) 08:25:34};
- 上の2行目は,points ではなく lines を使うと type="l" な...
- 丁寧なお返事ありがとうございます。うまく図が描けました...
- リンク関数をLogitとProbitにしたときのGLMで推定結果(Resi...
**あるベクトルから条件に合致した要素を取り出す際に、条件...
>[[AobaAoba]] (2007-12-20 (木) 18:24:29)~
~
どうぞよろしくお願いします(WinXPで、バージョン2.5.1使用で...
~
下記のxのベクトルのうち、yのベクトルの要素に含まれるもの...
x <- c(2,2,3,6,2,0,6,7,9)
y <- c(2,7)
そこで、単純には以下のようにすれば良いことは初心者ながら...
z <- x[x == 2 | x == 7]
しかし、yがもっと長いベクトルの場合はどうすれば良いのでし...
私が思いつけるのは「forループを使って、yの要素を1つずつ取...
z <- c()
for(i in 1:length(y)){
z <- c(z,x[x == y[i]])
}
もっと簡単な方法があればよろしくお願いいたします。~
//
- x[x%in%y] -- &new{2007-12-20 (木) 18:45:07};
- えっ?それだけで良いんですか?あれ、確かにあってる。ど...
**データフレーム名の自動生成or変換 [#wf2be16a]
>[[うち]] (2007-12-20 (木) 17:13:04)~
~
irisのデータを例にして説明します。~
種名ごとに抽出したデータフレームを自動で生成し,そのデー...
下記のような方法を試してみましたが,当然ながら全くダメで...
種名 <- levels(iris$Species) #種名を抜き出す
種数 <- length(種名) #種数を取得
for(i in (1:種数) ) {
paste(種名[i]) <- subset(iris, Species==種名[i])
}
# 「関数 "paste<-" を見つけることができませんでした」と...
for(i in (1:種数) ) {
df <- subset(iris, Species==種名[i])
names(df) <- paste(種名[i])
}
# これだとデータフレーム名はそのままで,列名が変わって...
//
- 実際に何がやりたいかによるんだろうけど,別に新しくデー...
以下のような使い方があるのはご存じ? -- &new{2007-12-20 ...
a <- split(iris, iris[,5])
lapply(a, summary)
summary(a[["versicolor"]])
- 上と同意見ですが、どうしても別にしたいなら、list()で代...
dat <- lapply(unique(iris$Species), function(x) subset(i...
names(dat) <- unique(iris$Species)
として、
dat[["setosa"]]
とかする -- [[akira]] &new{2007-12-20 (木) 19:08:16};
- こんなことがやりたい? -- &new{2007-12-20 (木) 20:31:2...
> for(i in (1:種数) ) assign(種名[i], subset(iris, Spec...
> ls()
[1] "setosa" "versicolor" "virginica" "種数" ...
- 皆様,ご回答有り難うございます。~
また,私の投稿を読みやすく修正していただき有り難うござい...
assign を教えて下さった方,どうもありがとうございます。as...
しかし,上のお二方のご指摘のようにデータ処理方針を考え直...
例はirisですが,底びき網に入った魚の話です。~
底びき網には魚が溜まる場所が数箇所あり,場所によって種組...
大量の魚が獲れるため,魚の溜まる場所(サンプル区分)ごと...
iris2 <- iris
iris2$区分 <- rep(c("A","B"))
iris2$抽出率 <- ifelse(iris2$区分=="A", 0.8, 0.4 )
そのまま度数分布表を作成したのでは網全体のサイズ組成がゆ...
種ごとサンプル区分ごとにデータフレームを抜き出して度数分...
上のお二方のご提案を参考にして問題解決ができるのか,考え...
R初心者なので,すぐにお返事できないと思いますが,どうかご...
- paste() 関数は文字列及び文字列化した数値を分離文字をは...
> for (i in 1:10) assign( paste("mydata",i,i+5,sep="."),...
> ls()
[1] "mydata.1.6" "mydata.10.15" "mydata.2.7" "mydat...
[6] "mydata.5.10" "mydata.6.11" "mydata.7.12" "mydat...
> mydata.4.9
[1] 4 5 6 7 8 9
- 解決できました。 -- [[うち]] &new{2007-12-21 (金) 20:04...
皆様に頂いたアドバイスを参考にして,下記のようなコードで...
やはり,ご指摘のように大量のデータフレームを作ってから処...
今回は大変勉強になりました。どうも有り難うございました。
# データの生成
iris2 <- iris
iris2$区分 <- as.factor(rep(c("A","B")))
iris2$抽出率 <- ifelse(iris2$区分=="A", 0.8, 0.1 )
種名 <- levels(iris2$Species)
種数 <- length(種名)
区分名 <- levels(iris2$区分)
区分数 <- length(区分名)
階級下限 <- seq(0,10,by=0.5)[-length(seq(0,10,by=0.5))]
# 種別・区分別の度数分布を作製して抽出率補正した結果を1...
for( i in (1:種数)){
for( n in (1:区分数)){
temp <- subset(iris2, Species==種名[i] & 区分==区分名...
ans <- hist(temp$Sepal.Length, br=seq(0,10,by=0.5), r...
補正度数 <- ans$counts/mean(temp$抽出率) # ここで抽...
階級下限 <- cbind(階級下限, 補正度数)
colnames(階級下限)[ncol(階級下限)] <- paste(種名[i],...
補正サイズ組成 <- data.frame(階級下限) # データフレ...
}}
# 補正後の度数分布を種ごとに合体して,全体?のサイズ組...
pdf(file="補正サイズ組成.pdf", width=7, height=3)
for( i in (2: (length(補正サイズ組成))) ){
ifelse( i%%2==0, {
title <- substring(colnames(補正サイズ組成[i]), 1, nch...
barplot(補正サイズ組成[[i]]+補正サイズ組成[[i+1]], nam...
}, next)
}
dev.off()
- こんなふうな図を添付したかったのでしょう。やっているこ...
#ref(iris78975839789.png)
- 私の汚いソースを直す気にならないのは当然ですよね。すっ...
- こんな風になるかな(短くはならないけど,少しは見通しが...
iris2 <- iris
iris2$区分 <- as.factor(rep(c("A","B")))
種名 <- levels(iris2$Species)
種数 <- length(種名)
brks <- seq(0,10,by=0.5)
split.df <- split(iris2,
list(iris2$Species, iris2$区分)) # データファイルを2要...
ans <- sapply(split.df, function(temp) # 集計
hist(temp$Sepal.Length, br=brks, right=FALSE, plot=F...
dim(ans) <- c(20, 3, 2) # 配列に割り付け
ans2 <- ans[,,1]/0.8+ans[,,2]/0.1 # 重み付けの合計
pdf(file="補正サイズ組成.pdf", width=7, height=3) # 出力...
for (i in 1:種数) { # for を使わないとかえって面倒
barplot(ans2[,i],
names.arg=brks[-length(brks)], # x軸の名前
main=paste(種名[i], "補正サイズ組成", sep="")) # 表...
}
dev.off()
- こんなにスッキリするとは!ありがとうございます。split(x...
**ARIMAモデルの次数選択 [#r9952715]
>[[kuri]] (2007-12-20 (木) 02:14:02)~
~
ARIMAモデルの次数選択をAICを選択基準として求めるプログラ...
エラーが出ても無視して、全通りを実行することはできますか?~
//
- ?try -- &new{2007-12-20 (木) 05:17:27};
**微分できない関数のoptim()での最適化 [#k06af95b]
>[[Katoh]] (2007-12-18 (火) 12:37:52)~
~
はじめまして。~
optim()関数について質問です。~
~
こちらの「汎用最適化関数 optim() の使用法」ページによると...
>微分できないような関数では"Nelder-Mead" 法 や"SANN" 法 ...
とありますが、~
実際に準ニュートン法や共役勾配法でも微分できない関数の最...
どのようにして微分値を求めているのでしょうか?それとも求...
~
よろしくお願いします。~
//
- 関数値だけを使うアルゴリズムですから、微分値は仮にそれ...
- >関数値だけを使うアルゴリズム これはNelder-Meadや焼...
- (誤解されました ...)。 optim の準ニュートン法や...
- ありがとうございます。そしてごめんなさい、ちゃんとhelp...
- 「良い最適値」とは厳密に言えば形容矛盾ですね。一方で数...
**barplotで、特定のbarだけをかえたいのですが [#d244eb08]
>[[<ふ>]] (2007-12-15 (土) 22:10:24)~
~
たとえば、~
x <- matrix(seq(10,20,2),6,2)~
のようなデータを用意して、~
~
barplot(t(x))~
とすると、各barは、同じ二色(defaultでは、glay scaleです...
~
これを、(例えば)右から二本目のbarの色を、"lightblue","g...
~
(bar内が分割されてない場合は、そのbarだけ色を変えること...
~
よろしくお願いいたします。~
//
- やはり、そういう引数ないですよね。なら、ちからずくで、...
- xx<-t(x); barplot(xx,col=c("blue","red")); par(new=T); ...
**ftableで作成したクロス集計で合計がゼロの行を消したい [#...
>[[Transalp]] (2007-12-14 (金) 18:32:49)~
~
お世話になります。
~
要素が4つ以上あるデータフレームの値をtableで集計し、ftab...
hoge.txtの中身
所属 名前 月度 出席
営業部 営業太郎 01月 はい
総務部 総務花子 02月 はい
営業部 営業次郎 03月 はい
購買部 購買好男 03月 はい
経理部 経理京子 04月 はい
技術部 技術冴子 04月 はい
営業部 営業太郎 04月 はい
Rコンソールから
df <- read.delim("hoge.txt", header=TRUE)
tbl <- table(df[,1], df[,2], df[,3])
ftbl <- ftable(tbl)
ftable実施後
01月 02月 03月 04月
営業部 営業次郎 0 0 1 0
営業太郎 1 0 0 1
技術冴子 0 0 0 0
経理京子 0 0 0 0
購買好男 0 0 0 0
総務花子 0 0 0 0
技術部 営業次郎 0 0 0 0
営業太郎 0 0 0 0
技術冴子 0 0 0 1
経理京子 0 0 0 0
購買好男 0 0 0 0
総務花子 0 0 0 0
経理部 営業次郎 ・・・以下略
営業部には営業太郎と営業次郎しかいないはずなので、
tbl <- tbl[rowSums(tbl) > 0,, drop=FALSE]
としましたが「次元が違う」とエラーになってしまいます。そ...
~
この「行合計がゼロ」のftableを削除する方法をご教授下さい。~
実行環境はWindowsXP SP2 R-2.6.1 です。~
~
よろしくお願い申し上げます。~
//
- プログラムを書いてしまえばよいのだが。集計次元数が決め...
> df2 <- data.frame( table(df[,1], df[,2], df[,3]))
> df2 <- df2[df2[,ncol(df2)] > 0, ]
> a <- reshape(df2, idvar=c("Var1", "Var2"), timevar="Va...
> a[is.na(a)] <- 0
> colnames(a) <-c(colnames(df)[1:2], dimnames(tbl)[[3]])
> rownames(a) <- 1:nrow(a)
> a
所属 名前 01月 02月 03月 04月
1 営業部 営業太郎 1 0 0 1
2 総務部 総務花子 0 1 0 0
3 営業部 営業次郎 0 0 1 0
4 購買部 購買好男 0 0 1 0
5 技術部 技術冴子 0 0 0 1
6 経理部 経理京子 0 0 0 1
- おなじく、決め打ちなんですが
x <- apply(ftbl,1,sum)>0
y <- cbind(rep(attr(ftbl, "row.vars")[[1]], each=length(...
rep(attr(ftbl, "row.vars")[[2]], times=length...
z <- data.frame(y[x,],ftbl[x,])
colnames(z) <- c("所属","名前",unlist(attr(ftbl,"col.var...
z
所属 名前 01月 02月 03月 04月
1 営業部 営業次郎 0 0 1 0
2 営業部 営業太郎 1 0 0 1
3 技術部 技術冴子 0 0 0 1
4 経理部 経理京子 0 0 0 1
5 購買部 購買好男 0 0 1 0
6 総務部 総務花子 0 1 0 0
とか、
集計だけ欲しいなら、
df$"name" <- apply(df[,1:2],1,paste,collapse="-")
x <- matrix(0, nrow=length(unique(df$"name")), ncol=leng...
dimnames=list(unique(df$"name"),unique(df[,3...
for(i in rownames(x)) for(j in colnames(x)) x[i,colnames...
x
01月 02月 03月 04月
営業部-営業太郎 1 0 0 1
総務部-総務花子 0 1 0 0
営業部-営業次郎 0 0 1 0
購買部-購買好男 0 0 1 0
経理部-経理京子 0 0 0 1
技術部-技術冴子 0 0 0 1
とか -- [[akira]] &new{2007-12-15 (土) 00:40:09};
- ftable は該当因子の全ての組合せに対するクロス集計表を作...
# df に所属変数と名前変数を(全角空白をはさんで)結合した...
# 新しい変数のラベルは「所属及び名前」
> df2 <- transform(df, 所属及び名前=paste(所属,名前, sep...
> df2
所属 名前 月度 出席 所属及び名前
1 営業部 営業太郎 01月 はい 営業部 営業太郎
2 総務部 総務花子 02月 はい 総務部 総務花子
3 営業部 営業次郎 03月 はい 営業部 営業次郎
4 購買部 購買好男 03月 はい 購買部 購買好男
5 経理部 経理京子 04月 はい 経理部 経理京子
6 技術部 技術冴子 04月 はい 技術部 技術冴子
7 営業部 営業太郎 04月 はい 営業部 営業太郎
> ftable(df2, row.vars=5, col.vars=3) # 第5列を行、第3列...
月度 01月 02月 03月 04月
所属及び名前
営業部 営業次郎 0 0 1 0
営業部 営業太郎 1 0 0 1
技術部 技術冴子 0 0 0 1
経理部 経理京子 0 0 0 1
購買部 購買好男 0 0 1 0
総務部 総務花子 0 1 0 0
- それを許すなら,ftable より xtabs が好きだなあ。ftable ...
> df2 <- transform(df, 所属及び名前=paste(所属,名前, sep...
> xtabs(~所属及び名前+月度, df2)
月度
所属及び名前 01月 02月 03月 04月
営業部 営業太郎 1 0 0 1
営業部 営業次郎 0 0 1 0
技術部 技術冴子 0 0 0 1
経理部 経理京子 0 0 0 1
総務部 総務花子 0 1 0 0
購買部 購買好男 0 0 1 0
- なるほど、こういった形でプログラムすればいいんですね。R...
**ケースの選択方法 [#o154f8fa]
>[[mikasa]] (2007-12-13 (木) 20:10:39)~
~
SPSSからの転向に向けて、Rコマンダーを使って勉強中です。~
(1) データセットから特定のデータだけを分析対象にする方法...
(2) データセットを分割して一回の指示で分割したデータセッ...
よろしくお願いします。~
//
- ローマ数字や丸付き数字は使わない方がよいですよ。~
(1) の方は,質問の意図が分かりませんね。新たなデータセッ...
irisデータセットのSpeciesがsetosaのものの統計量を求めたい...
summary(iris[iris[,5]=="setosa",])
iris[,5] の3種ごとに統計量を求めたいなら,以下の一行。
by(iris, iris[,5], summary)
(2) の方は,iris データセットのSpeciesで3分割し,おのおの...
lapply(split(iris, iris[,5]), summary)
まあ,同じことをやるのでも,何通りもあるということで。~
Rコマンダーなど使わない方がよいかも。 -- &new{2007-12-13...
- (1) 「データセットの部分集合を抽出」しかないのでは?~
(2) 難しいかと・・・.ただ,たとえばグラフの場合は「層別...
- SPSSとRではケース選択や分割の考え方(操作)が全くちがう...
**値を文字列として加えるには? [#q9e79f39]
>[[AobaAoba]] (2007-12-11 (火) 17:03:50)~
~
エクセルを卒業してRの世界に足を踏み入れたばかりのものです...
さきほどからこのサイトやらなにやらを3時間ばかり彷徨ってい...
~
やりたいことはもう少し複雑なのですが、以下のことができれ...
~
~
以下のように変数に数字を入れて、それぞれの値を代入したい...
x_1 <- 1~
x_2 <- 2~
x_3 <- 3~
.
.
.
x_10 <- 10~
~
~
そこで次のようなことを書けば良いと思ったんですが、うまく...
~
for (i in 1:10){
x_i <- i
}
~
x_iのところのiの前後に何か入れるんじゃないかと思うのです...
お手数おかけしてしまって本当にすみませんが、どなたかどう...
//
- 何をしたいのかよくわからないのですが、 x[i]<-i じゃだ...
for (i in 1:10){
Command<-paste("x_",i," <- ",i,sep="")
eval(parse(text=Command))
}
- コメントありがとうございます。本当は、xがデータフレーム...
x[[i]]
つまり「i番目の列のベクトル」に新たに名前をつけたいのです...
- どういたしまして。次回からは、実行環境(OS,Rのバージョ...
- 聞きたいことを素直に,詳しく説明して聞けばよいのです。...
データフレームの列の名前を付けたいのですよね。だったら,...
colnames(x) <- paste("x", 1:ncol(x), sep="_")
- colnamesという関数があるのですね!言い訳のつもりではな...
- まあ、forをやってるあたりでR魔人の先生方から「何か来そ...
- コメントありがとうございます。足掻いた上でどうしてもの...
**Bray-Curtis Distanceの関数について [#e2853627]
>[[R.,M.]] (2007-11-22 (木) 10:56:38)~
~
初めて質問させていただきます。~
昨日、クラスター解析の準備としてBray-Curtis Distanceの計...
> dist.BC(x)
以下にエラー dimnames(x) <- dimnames :
'dimnames' はリストでなくてはなりません
そこでdimnames(x)を実行すると”行の番号”と”変数名”が正常に...
> help(package="clusterSim")
Warning message:
In readLines(f) :
'C:/PROGRA~1/R/R-26~1.1RC/library/clusterSim/INDEX' ...
データは観測点における各生物分類群の現存量(対数変換済み...
~
原因と修正方法をお教えていただけませんか。~
//
- dist.BC のソースコードでそういったエラーが出そうな箇所...
- ありがとうございます。> names(x)を実行したところ52個の...
- dimnames として names(x) を使うなら、後者は list(c("ro...
- 14:51:42 さんのアドバイスにより,dist.BC の2行目を
wynik <- matrix(nrow = nr, ncol = nr, dimnames = list...
とすればよいのでは? -- &new{2007-11-22 (木) 17:55:24};
- 毎度のことですが、この手の質問は問題点が再現できる最小...
**T,FとTRUE,FALSE [#k7190c07]
>[[初心者]] (2007-11-16 (金) 20:50:15)~
~
TRUE, FALSEは上書きは不可能なんですが,それらのエイリアス...
~
プログラミングの際にはT,Fは使わずにTRUE,FALSEを使うのが...
//
- そういうことです。Rを使う上での注意事項で,必ず取り上げ...
- 「背景がよくわかっていれば」、TRUEとしてゼロ以外の任意...
- TRUEもFALSEも補完されるので、spell outする癖をつけた方...
**R 言語でベクトル解析 [#m4dfc0d3]
>[[Euler]] (2007-11-16 (金) 20:31:13)~
~
てな、Webぺーじないかな?~
//
- ぐぐりなさい -- &new{2007-11-16 (金) 21:10:08};
- Rのシステム関数はほとんどベクトル化されていますから、そ...
**boxとプロットの間の隙間 [#c569b935]
>[[初心者]] (2007-11-16 (金) 16:16:59)~
~
いつもお世話になっています.
>theta <- seq(0,2*pi,0.01)
>plot(theta,sin(theta),xlim=c(0,2*pi));grid()
このようにプロットした際,boxの大きさはxlimで指定した範囲...
//
- なぜそう言うことをしたいのか。~
以下のようにすれば取りあえずの目的は達成できますか?~
bty="n" で枠を描くのを止めて,rect で自分で枠を描きます。...
theta <- seq(0,2*pi,0.01)
plot(theta,sin(theta),type="l", bty="n")
rect(0, -1, 2*pi, 1)
- ある行列データをimageで,行列データの各列の積分値のデー...
- 少し不正確では?
> theta <- seq(0, 2*pi, 0.01)
> oldpar <- par(xaxs="i")
> plot(theta, sin(theta), xlim=c(0, 2*pi), type="l")
> par(oldpar)
xaxsはpar()の引数です. -- &new{2007-12-12 (水) 10:46:53};
- > xaxsはpar()の引数です.~
その通りではあるが,par() の引数の多くは plot の引数とし...
plot のオンラインヘルプを見ればわかりますが,plot が ... ...
... Arguments to be passed to methods, such as graphical...
実際に,
> plot(theta, sin(theta), xlim=c(0, 2*pi), type="l", xax...
> plot(theta, sin(theta), xlim=c(0, 2*pi), type="l")
を試してみれば,違いがわかるでしょう。 -- &new{2007-12-1...
- なるほど.こんな便利な方法があったのですね.ありがとう...
**インストーラなしのWin版Rのインストール [#t2ff32bd]
>[[内部統制]] (2007-11-14 (水) 10:30:43)~
~
Win版Rをインストーラを使わないでインストール方法はある...
//
- ソースから自分でコンパイルすれば?(なんでそいういうや...
- どこぞのWinの[Program Files]の中の[R]フォルダを丸ごとコ...
- Rjpwikiの過去記事にUSBでWin版Rを持ち歩く方法があります...
**2次輸送問題 [#y5ace7e0]
>[[OR mania]] (2007-11-13 (火) 11:14:42)~
~
Rには2次輸送問題(QTP:Quadratic Transportation Problem...
~
こちらの「数理計画」のページを見ましたが見当たりません...
//
- [[必要な関数を探す]]は見なかったんですか? -- &new{200...
**barplotのlegendについて [#xe93c366]
>[[K]] (2007-11-12 (月) 14:05:32)~
~
barplotのlegendについて教えて下さい。~
グラフをプレゼン用に使おうと、par(ps=22)として文字サイズ...
par(ps=22)
par(mar=c(5,5,3,3))
barplot(sum, names.arg=breaks2,
col = c("darkred", "darkgreen", "lightblue", "pi...
xlab="胸高直径階(cm)", ylab="立木本数(本/ha)"...
legend("topright", c("アカマツ", "ヒノキ", "スギ", "その...
fill=c("darkred", "darkgreen", "lightblue", "pink...
そして、以下のようなヒストグラムを得ました。~
#ref(histgram_k2.png)~
この凡例中の文字列の前の四角のサイズを大きくしたいと思い...
//
- 制御する引数がないので,legend 関数の中の,rect2 の呼び...
- legend 関数の lty, lwd パラメータを適当に指定してみたら...
- なるほど,fill の代わりに col を使い(fill で指定してい...
- 早速のコメント、ありがとうございます。
頂いたアドバイスを参考に、
legend("topright", c("アカマツ", "ヒノキ", "スギ", "その...
col=c("darkred", "darkgreen", "lightblue", "pink...
lwd=15, y.intersp=2)
とすることで、以下のような凡例を得る事が出来ました。
#ref(legend_K1.png)
四角から角の丸い太線になったのは、fillの代わりにcolを用い...
ともあれ、お陰様でPowerPointでのプレゼンなどには十分使え...
- おおっ!アドバイス通りにやってみたら、見事に欲しかった...
**Mac OS X 10.5にRのインストールができません [#c5571c65]
>[[suzuk]] (2007-11-11 (日) 11:37:40)~
~
(Rがインストールされていない)Mac OS X 10.5 (Leopard)にR...
「このソフトウェアのより新しいバージョンがシステムにイン...
R-2.6.0、R-2.5.0、R-2.4.1の何れのバージョンにおいても同様...
//
- CRANのR for Mac OS Xというページhttp://cran.r-project.o...
- R-2.6-branch-43408.dmg (latest version)はLeopardに正常...
**キュー、スタックの実現 [#j2f44880]
>[[kbi]] (2007-11-11 (日) 09:38:12)~
~
google等の検索エンジンとサイト内検索を試したのですが~
有効な情報が見つからなかったので質問させてください。~
Rにおいて、基本的なデータ型としてキューやスタックは~
用意されていないのでしょうか。~
待ち行列などのモデルをシミュレーションしてみたいと思って...
調べるのに有効なキーワードだけでも教えていただけると幸い...
//
- R本体にはキューやスタックという機能はありません。貢献パ...
> Stack <- function(){ # Rには既に stack という名前の関...
+ it <- list()
+ res <- list(
+ push=function(x){
+ it[[length(it)+1]] <<- x
+ },
+ pop=function(){
+ val <- it[[length(it)]]
+ it <<- it[-length(it)]
+ return(val)
+ },
+ value=function(){
+ return(it)
+ }
+ )
+ class(res) <- "stack"
+ res
+}
> print.stack <- function(x,...) print(x$value())
> push <- function(stack,obj) stack$push(obj)
> pop <- function(stack) stack$pop()
> bz <- Stack()
> bz
list(0)
> push(bz, 1:10)
> bz
[[1]]
[1] 1 2 3 4 5 6 7 8 9 10
> push(bz, rnorm(10))
> bz
[[1]]
[1] 1 2 3 4 5 6 7 8 9 10
[[2]]
[1] 1.1519118 0.9921604 -0.4295131 1.2383041 -0.2793...
[7] 0.5607461 -0.4527840 -0.8320433 -1.1665705
> pop(bz)
[1] 1.1519118 0.9921604 -0.4295131 1.2383041 -0.2793...
[7] 0.5607461 -0.4527840 -0.8320433 -1.1665705
> bz
[[1]]
[1] 1 2 3 4 5 6 7 8 9 10
> pop(bz)
[1] 1 2 3 4 5 6 7 8 9 10
> bz
list()
- なるほど、これは使いやすそうです。自力でリストから構造...
**パッケージのインストールができない [#gef68821]
>[[tomo]] (2007-11-09 (金) 20:27:05)~
~
Rの初心者です。 R2.4.1を使用しています。~
パッケージのインストールができません。ダウンロードはして...
> utils:::menuInstallPkgs()
URL 'http://prs.ism.ac.jp/bioc/1.9/bioc/bin/windows/cont...
Content type 'application/zip' length 436881 bytes
開かれた URL
downloaded 426Kb
~
以下にエラーzip.unpack(pkg, tmpDir) :
ファイル 'C:/Program Files/R/R-2.4.1/library/file57d366...
違うパソコンからだと,同じ操作でインストールできました。...
よろしくお願いいたします。~
//
- まずは,最新バージョンにバージョンアップしましょう。う...
- Vista の場合は,R を起動する際に「右クリック」→「管理者...
- 皆さま ありがとうございました。違うパソコン=XP できな...
**ウィンドウサイズの拡大 [#o7bb94a9]
>[[クラスタ]] (2007-11-07 (水) 20:30:56)~
~
hclust()を使い樹形図を作成しました。~
しかし、データ数が600個あり文字が重なって読めません。~
ウィンドウサイズを拡大しようにも画面サイズより広がりませ...
なんとか読めるように文字が重ならない大きさまで拡大したい...
ご教示お願いします。~
- 初級Q&A アーカイブ(6)の『クラスター分析におけるフォ...
- 読んでませんでした。同じ問題を抱えた人の質問でしたが、...
- 600個のデータを一度に見よう(一部分だけ見てもそれはそれ...
- こんな表示方法もあるんですね、ウィンドウの拡張は諦めて...
- これと同じ質問にここ数週間内に答えたんだけど,元記事が...
それはさておき,画像を画面一杯に限って重ならないようにフ...
画面に描かれたものを見るだけでよいという局面は少ないわけ...
いったん画像ファイルに保存すれば,それをそのまま印刷する...
つまり,横幅(縦幅も)を十分大きく取って描画し,それをフ...
以下を実行して,できるファイルをご覧下さいませ。 -- &new...
x <- matrix(rnorm(1200),600)
pdf("cluster.pdf", height=10, width=150)
plot(hclust(dist(x)), hang=-1)
dev.off()
- おお、できました。これを求めていたんです。お二方ありが...
**関数 cut() の引数 right について [#j75d0934]
>[[実験万]] (2007-11-01 (木) 14:40:22)~
~
ある数値データベクトルの度数分布を求めるときに、階級の端...
~
まず、0.1 から 9.9 まで、0.1 刻み、99 個の数値からなるデ...
~
実験 (1)~
階級の端点に一致する数値がある場合、その数値を「下側」の...
命令:
x <- seq( 0.1, 9.9, 0.1 )
table( cut( x, breaks=seq(0,10,1), right=TRUE ) )
結果:
(0,1] (1,2] (2,3] (3,4] (4,5] (5,6] (6,7] (7,8] ...
10 10 9 11 10 10 10 10 ...
~
実験 (2)~
階級の端点に一致する数値がある場合、その数値を「上側」の...
命令:
x <- seq( 0.1, 9.9, 0.1 )
table( cut( x, breaks=seq(0,10,1), right=FALSE ) )
結果:
[0,1) [1,2) [2,3) [3,4) [4,5) [5,6) [6,7) [7,8) ...
9 10 10 10 10 10 10 10 ...
~
それぞれ、最初と最後の階級の度数をみると、期待したとおり...
~
しかし、ひとつ問題が見つかりました。それは、実験 (1) の結...
//
- 計算機で扱う実数は,「近似値に過ぎない」からです。近似...
あなたの例でも,全体を10倍して小数を含まないデータにして...
要するに,正確な値が欲しければ整数を扱うようにするのがよ...
ちなみに,日本では「○○以上□□未満」ということがあるので,...
> x <- seq( 1, 99, 1 )
> table( cut( x, breaks=seq(0,100,10), right=TRUE ) )
(0,10] (10,20] (20,30] (30,40] (40,50] (50,60] (...
10 10 10 10 10 10 ...
(80,90] (90,100]
10 9
- ありがとうございます。勉強になります。これからは、必要...
**0.999999999 [#u6a17a42]
>[[ビットマップ]] (2007-11-01 (木) 12:18:08)~
~
R version 2.5.1です。~
set.seed(100)
vo <- round( rnorm(40,100,5), 1)
~
table(diff(sort(vo)))
とすると~
~
0 0.0999999999999943 0.100000000000009 ...
4 8 5 ...
0.299999999999997 0.300000000000011 0.399999999999991 ...
5 1 1 ...
0.5 0.599999999999994 0.700000000000003 ...
7 1 1 ...
1.20000000000000 2.800 3.5
1 1 1
~
という結果が得られました。~
0.0999999999999943 と 0.100000000000009 はどちらも 0.1 ...
//
- 必要な段階でroundすること。良いか悪いかはともかく,tabl...
この質問も,この上の質問と解答に関連しています。 -- &new...
- そうですね.round でゴリおししてみます.ただ,何桁必要...
**グラフの軸を太くしたい [#b2f8fb3f]
>[[surg]] (2007-10-28 (日) 07:40:31)~
~
Rで作成したグラフを、Microsoft Wordの書類に挿入しようと思...
png("test.png", width=324*4, height=324*4)
par(cex=4, lwd=4)
hist(rnorm(1000))
dev.off()
上記のようにしてWord上で15%程度に縮小して印刷すると,グラ...
help(par) は読んだのですが,それらしい項目は見当たりませ...
//
- lwd -- [[okinawa]] &new{2007-10-28 (日) 10:08:41};
- par じゃなくて hist の引数でね -- &new{2007-10-28 (日)...
- ありがとうございます.ご指摘のようにlwdをparではなくhis...
- histはこれで大丈夫だったのですが,plotではだめでした.
png("test.png", width=324*4, height=324*4)
par(cex=4, lwd=4)
plot(rnorm(1000), rnorm(1000), lwd=4)
dev.off()
こうするとグラフのほとんどの構成要素は太くなるのですが,...
help(plot), help(plot.default)にはそれらしい記述は見当た...
- 実際に呼び出される plot.default に問題があるように思い...
取りあえずは,plot.default にパッチを入れて使うとか -- &...
plot.default <- function (x, y = NULL, type = "p", xlim ...
log = "", main = NULL, sub = NULL, xlab = NULL, ylab...
ann = par("ann"), axes = TRUE, frame.plot = axes, pa...
panel.last = NULL, asp = NA, ...)
{
# 実際は以下のようになっているのだが,これでは lwd は Ax...
# localAxis <- function(..., col, bg, pch, cex, lty, ...
# 次に示すように lwd を取ると,期待通りの動きをする
# col とか bg, pch, cex ,lty も同じになると思うが,
# この関数を作った人は,plot の軸を描くときに col, bg, p...
# 弄るべきではないと思ったのかもね
localAxis <- function(...) Axis(...)
- ありがとうございます.plot.defaultに手を入れることで,...
仰るとおり,作者は他のパラメータと同じく,Axis()のlwdもpa...
**PLSとCCAは同等か [#gbb2130e]
>[[yishii]] (2007-10-24 (水) 23:04:38)~
~
初心者なので教えていただきたいことがあり、投稿させていた...
//
- 統計プロパーの質問はこのWikiでは歓迎されません。 -- &n...
**R commanderでの生存時間解析(cmprsk)における多変量解析(c...
>[[takeiteasy]] (2007-10-24 (水) 00:22:52)~
~
先日、Rcommanderでのcmprskを教えていただいたものです。お...
Rcommanderハンドブックの6章のCox回帰を参考にやってみまし...
申し訳ありません。~
//
- Rでも動かないのでしょうか?何を試して、何がダメだったか...
[[takeiteasy]]さんはコマンド入力でRを使用されているようで...
- crr のヘルプを見ますと、crr のモデルの指定の仕方は「Cox...
↓で定義しました関数 Mycuminc() を改造してみてはいかがでし...
- ありがとうございます。Mycuminc()を改造してやってみます...
**e1071パッケージのsvmメソッドの損失関数について [#c6ae6f...
>[[codedir]] (2007-10-19 (金) 12:51:21)~
~
e1071パッケージのsvmメソッドの回帰における損失関数はε-イ...
損失関数を定義しているプログラムを探したんですが、見当が...
よろしくお願いします
e1071:::svm.default
e1071:::svm.formula
//
- svmtrain って,Cで書かれたプログラムを呼んでるんでは?~
そのソースプログラムを読めばよいかと。 -- &new{2007-10-1...
cret <- .C("svmtrain", as.double(if (sparse) x@ra else t...
- ありがとうございます!google code searchで検索したら、e...
通常このソースはe1071のどこに保存されているのでしょうか?...
- なんだかなあ。? svm してでてくる中で,参考文献として出...
- 近くにある、「Rに関して包括的な情報をまとめたサイト」 =...
- お返事が大変おそくなって申し訳ありません。ありがとうご...
- すみません、追加の質問になるんですがお願いします。e1071...
- 自己解決しました!svm.dllをビルドする時にsvm.hとsvm.cpp...
**Rcommanderでcmprskはできますか? [#a413c361]
>[[takeiteasy]] (2007-10-17 (水) 23:46:49)~
~
医学データの解析に使用したいのですが、~
いままで、JMPなどで統計解析していましたが、~
cmprskはJMPなどでは解析できません。~
コマンド入力などは素人でなかなか難しいです。~
Rcommanderなどを用いてcmprskは解析できるでしょうか?~
//
- R には cmprsk というパッケージがあるものの、Rcommander ...
- R commander では cmprsk を含め,生存時間解析の機能はサ...
(R Commander に cmprsk の機能を実装すれば解析できます^...
- ありがとうございます。コマンド入力でがんばってみます。 ...
- 言いだしっぺの法則….パッケージ Rcmdr の etc フォルダに...
### MyProgram.R の中身
Mycuminc <- function(){
initializeDialog(title="cumulative incidence function")
timeBox <- variableListBox(top, Numeric(), title="時...
eventBox <- variableListBox(top, Numeric(), title="イ...
groupBox <- variableListBox(top, Factors(), title="群...
Var1 <- tclVar("0")
Var1Entry <- tkentry(top, width="6", textvariable=Var1)
onOK <- function(){
XXX <- getSelection(timeBox)
YYY <- getSelection(eventBox)
ZZZ <- as.factor(getSelection(groupBox))
AAA <- as.numeric(tclvalue(Var1))
if (length(XXX) != 1 || length(YYY) != 1 || length(Z...
errorCondition(recall=Mycuminc, message="変数を1つ...
return()
}
closeDialog()
library(cmprsk)
if (is.na(AAA)) {
command <- paste("cuminc(",
ActiveDataSet(), "$", XXX, ", ",
ActiveDataSet(), "$", YYY, ", ",
ActiveDataSet(), "$", ZZZ, ", ",
"cencode=0)", sep="")
}
else {
command <- paste("cuminc(",
ActiveDataSet(), "$", XXX, ", ",
ActiveDataSet(), "$", YYY, ", ",
ActiveDataSet(), "$", ZZZ, ", ",
"cencode=", AAA, ")", sep="")
}
doItAndPrint(command)
tkfocus(CommanderWindow())
}
OKCancelHelp(helpSubject="cuminc")
tkgrid(getFrame(timeBox), getFrame(eventBox), getFrame...
tkgrid(tklabel(top, text=gettextRcmdr("打ち切り")), Va...
tkgrid(buttonsFrame, columnspan=2, sticky="w")
tkgrid.configure(Var1Entry, sticky="w")
dialogSuffix(rows=2, columns=1)
}
Mycifplot <- function(){
initializeDialog(title="cumulative incidence function")
timeBox <- variableListBox(top, Numeric(), title="時...
eventBox <- variableListBox(top, Numeric(), title="イ...
groupBox <- variableListBox(top, Factors(), title="群...
Var1 <- tclVar("0")
Var1Entry <- tkentry(top, width="6", textvariable=Var1)
onOK <- function(){
XXX <- getSelection(timeBox)
YYY <- getSelection(eventBox)
ZZZ <- as.factor(getSelection(groupBox))
AAA <- as.numeric(tclvalue(Var1))
if (length(XXX) != 1 || length(YYY) != 1 || length(Z...
errorCondition(recall=Mycuminc, message="変数を1つ...
return()
}
closeDialog()
library(cmprsk)
if (is.na(AAA)) {
command <- paste("tmp <- cuminc(",
ActiveDataSet(), "$", XXX, ", ",
ActiveDataSet(), "$", YYY, ", ",
ActiveDataSet(), "$", ZZZ, ", ",
"cencode=0); plot(tmp)", sep="")
}
else {
command <- paste("tmp <- cuminc(",
ActiveDataSet(), "$", XXX, ", ",
ActiveDataSet(), "$", YYY, ", ",
ActiveDataSet(), "$", ZZZ, ", ",
"cencode=", AAA, "); plot(tmp)", sep="")
}
doItAndPrint(command)
tkfocus(CommanderWindow())
}
OKCancelHelp(helpSubject="cuminc")
tkgrid(getFrame(timeBox), getFrame(eventBox), getFrame...
tkgrid(tklabel(top, text=gettextRcmdr("打ち切り")), Va...
tkgrid(buttonsFrame, columnspan=2, sticky="w")
tkgrid.configure(Var1Entry, sticky="w")
dialogSuffix(rows=2, columns=1)
}
MySetup <- function(){
initializeDialog(title="cmprsk のセットアップ")
onOK <- function(){
closeDialog()
install.packages('cmprsk')
}
OKCancelHelp(helpSubject="install.packages")
tkgrid(buttonsFrame, columnspan=1, sticky="w")
dialogSuffix(rows=1, columns=1)
}
次に、同フォルダにある Rcmdr-menus.txt の一番最後に以下を...
### Rcmdr-menus.txt の一番最後に追記
### メニュー追加・ここから
menu MyMenu topMenu "" "" ...
item topMenu cascade "メニュー" MyMe...
item MyMenu command "CIF(計算)" Mycu...
item MyMenu command "CIF(プロット)" Myci...
item MyMenu command "cmprsk のセットアップ" MySe...
### メニュー追加・ここまで
まずは R commander を起動し,「メニュー」→「cmprsk のセッ...
サンプルデータを R Commander でアクティブにしてから,「メ...
### サンプルデータ
x <- data.frame(time=c(1:10,1:10), censor=floor(3*runif(...
R Commander への機能追加については [[説明スライドの最後の...
x <- data.frame(time=c(1:10,1:10), censor=floor(3*runif(...
library(cmprsk)
( tmp <- cuminc(x$time, x$censor, x$group) )
plot(tmp)
#ref(cif.gif)
です.-- [[舟尾]] &new{2007-10-18 (木) 02:02:03};
- 舟尾先生、詳細な説明ありがとうございます。やってみたい...
**音声データをスペクトル解析したい [#s1214187]
>[[trantila]] (2007-10-16 (火) 18:28:30)~
~
音声データ(WAV形式です。)をスペクトル解析したいのですが...
ここのサイトのスペクトル解析のところは見たのですがいまひ...
Rでは音声データを解析対象として扱えないのでしょうか?~
もし、そうであれば音声データを時系列データに変換する方法...
~
よろしくお願いします。~
//
- http://cran.r-project.org/src/contrib/Descriptions/soun...
- 単語検索で"WAV"ってするとそれらしいものが出てきますが.....
**RESTFul な Web Service で Rを利用 [#g5fe721c]
>[[tantan]] (2007-10-15 (月) 11:48:37)~
~
RWeb なような対話型の web service ではなくて、CGI の Get ...
//
- おれもほしい!(言いだしっぺの法則は無しにして) -- [[o...
- RApache+XMLでなんとかなるんでは? -- [[なかま]] &new{20...
- RApache は Windows 用はないようですね。 -- &new{2007-1...
- これは? http://data.vanderbilt.edu/~koyamat/brew/magi...
**RからWSDLを読み込みたい [#w3d10bc8]
>[[akira]] (2007-10-14 (日) 17:17:22)~
~
なかまさんの[[RからのBBDJアクセスメモ:http://prs.ism.ac.j...
> library("SSOAP")
要求されたパッケージ XML をロード中です
要求されたパッケージ RCurl をロード中です
> ddbj <- processWSDL ("http://xml.nig.ac.jp/wsdl/GetEnt...
> iface <- genSOAPClientInterface(def=ddbj)
以下にエラー parse(text = txt) : 予想外の 入力 です ...
" server = .defaultServer, .convert = .operation@...
nameSpaces = �"
とエラーになってしまいました。~
関数を読み込むと、
> processWSDL
function (fileName = "KEGG.wsdl", handlers = WSDLParseHa...
library(XML)
(中略)
types = processWSDLTypes(doc[["types"]], doc)
(以下、省略)
と、"processWSDLTypes"を見つけられず、トレースできません...
で、exampleを確認すると、
> tmp = processWSDL(system.file("examples", "KEGG.wsdl"...
Warning messages:
1: In function (node) :
skipping import node with no schemaLocation attribute
2: In function (node) :
skipping import node with no schemaLocation attribute
となり、KEGG.wsdlの読み込みでエラーになったようで、
> tmp = processWSDL("http://soap.genome.jp/KEGG.wsdl")
Warning messages:
1: In function (node) :
skipping import node with no schemaLocation attribute
2: In function (node) :
skipping import node with no schemaLocation attribute
と、大元にアクセスしてもだめでした。~
一つのスレで2つの疑問が生じていますが、
ddbj <- processWSDL ("http://xml.nig.ac.jp/wsdl/GetEntry...
tmp = processWSDL("http://soap.genome.jp/KEGG.wsdl")
のエラーを回避したいです。
> sessionInfo()
R version 2.6.0 (2007-10-03)
i486-pc-linux-gnu
locale: LC_CTYPE=ja_JP.UTF-8;LC_NUMERIC=C;LC_TIME=ja_JP....
LC_COLLATE=ja_JP.UTF-8;LC_MONETARY=ja_JP.UTF-8;LC_MESSAG...
LC_PAPER=ja_JP.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE...
LC_MEASUREMENT=ja_JP.UTF-8;LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets me...
other attached packages:
[1] SSOAP_0.4-6 RCurl_0.8-3 XML_1.93-2
loaded via a namespace (and not attached):
[1] rcompgen_0.1-15
です。
//
- SSOAPの[[0.4-3:http://www.omegahat.org/SSOAP/SSOAP_0.4-...
- ありがとうございます。DDBJにアクセスできました!~
ただ、SSOAPの[[0.4-3:http://www.omegahat.org/SSOAP/SSOAP_...
RSiteSearch("processWSDL")すると、[["http://www.ncbi.nlm....
> ncbi <- processWSDL("http://www.ncbi.nlm.nih.gov/entre...
以下にエラー ans[[ns]] <<- o : 一つ未満の要素を選択し...
追加情報: 50 件以上の警告がありました (警告を見るには...
> warnings()
警告メッセージ:
1: In FUN(X[[2L]], ...) :
Failed to handle node HasLinkOut of type attribute&sim...
2: In FUN(X[[2L]], ...) :
Failed to handle node HasNeighbor of type attribute&si...
3: In FUN(X[[1L]], ...) :
(以下、略)
うーん、DDBJだけじゃなく、KEGG APIもeUtilsも使いたかった...
- 最新のSSOAP_0.4-6でも,options(useFancyQuotes=FALSE)で`d...
- ありがとうございます。今はWinXPで使っています。SSOAP_0....
**グラフのフォントサイズを設定したい [#p59e5f85]
>[[田中]] (2007-10-14 (日) 15:41:02)~
~
R2.6.0,Windows XPを使っております。~
barplot()を使って棒グラフを描き,PowerPointのスライドに貼...
PowerPointに貼り付けてみると,文字が少し小さく,フロアか...
x軸,y軸のラベルや図のタイトルのフォントサイズを変更する...
どなたか対処法をご存知の方がいらっしゃいましたら,お返事...
//
- この手の質問は過去の質問履歴から検索するか、グラフィッ...
- akira様,早速のコメントありがとうございました。"フォン...
**線分の描き方について [#q8f5e24d]
>[[真矢]] (2007-10-11 (木) 18:27:55)~
~
座標(X,Y)を始点とした傾きm、長さLの線分の書き方を教え...
R2.4.1を使っています。~
//
- ?segments -- &new{2007-10-11 (木) 18:50:55};
- この手の質問は検索すれば一発で出てきますよ。あと、[[リ...
**ESSからRcmdrを日本語で呼び出したい [#f85df36b]
>[[<ふ>]] (2007-10-02 (火) 21:57:19)~
~
(連続で失礼します。)~
~
essをMeadowで使ってます。~
(WindowsXP、R2.5.1、Rcmdr1.3-5、ess-5.3.4、Meadow3)~
このessのR processからlibrary(Rcmdr)を実行すると、langが...
~
そこで、Rのインストールディレクトリの /etc/Rconsole を開...
## Language for messages~
language = ja~
のように、強制的にjaにしてみました。~
~
これで、起動するRcmdrのメニューなどは、めでたく日本語にな...
やはり、Tcl/Tkにちゃんとlangを伝えないとだめなようです。~
~
Meadowの中のなにかを設定すればいいのではないかと思おうの...
~
どなたかアドバイスをお願いいたします。~
//
- essd-r.el を見てみて下さい. たぶん, default-process-cod...
- なかまさん、ありがとうございます。essの設定では、http:/...
- Rconsoleのlanguageはデフォルトのまま変更してませんが、...
- たぶん、Meadowが環境変数LANGを設定している(私のは"JPN"...
- 引数にLANGを与えればいいので、こんな感じでどうでしょう ...
(set-default-coding-systems 'cp932)
(set-terminal-coding-system 'cp932)
(set-keyboard-coding-system 'cp932)
(set-buffer-file-coding-system 'cp932)
(require 'ess-site)
(define-key ess-mode-map "\177" 'delete-char)
(setq ess-ask-for-ess-directory nil)
(setq ess-pre-run-hook
'((lambda () (setq S-directory default-directory)
(setq default-process-coding-system '(cp932 . cp932))
)))
(setq inferior-R-args "LANG=")
- なかまさん、ありがとうございます。LANGをja_JP.SJIS...
**datasetにhelpをつける方法を知りたいのですが [#x4277c6e]
>[[<ふ>]] (2007-10-02 (火) 14:58:10)~
~
RcmdrでR2.5.1を使っています。~
~
データの集計は、Excelでおこなって、それをRのDatasetとして...
~
この.Rdaでsaveされたデータセットに、helpをつける方法がわ...
~
Packageで提供されているDatasetには、helpがついていて、便...
~
ご教示ください。~
//
- [[パッケージを作る]]を参照のこと。今回の場合,プログラ...
- help(comment) -- &new{2007-10-02 (火) 17:36:41};
- help(comment)でオブジェクトにコメントする方法は、やって...
**折れ線プロットは?(plot) [#vc36ef84]
>[[kd]] (2007-09-25 (火) 03:46:53)~
~
折れ線プロット(すなわちポイント点は無印)を描こうと思っ...
(Mac版 R-2.5.1.dmg を使っております.)~
しかし下記を試しても折れ線プロットを描いてくれませんでし...
> plot(x$V2~x$V1,pch=-1,lty=1) ---> 丸印でポイント点を...
> plot(x$V2~x$V1,pch="",lty=1) ---> 無印,無線~
//
- あのー、検索すれば一発ですが..."plot" "折れ線"とかして...
答えを教えてもkdさんのためにならないので、検索の仕方を教...
他、[[リンク集:http://www.okada.jp.org/RWiki/?%A5%EA%A5%F...
わからないことがわからないと、何から手を付けて良いのかす...
- まず何より先に,ヘルプを読むべし。~
? plot しましょ。掲示板に質問して答えを待つなんて,まだる...
... Arguments to be passed to methods, such as graphical...
type~
what type of plot should be drawn. Possible types are~
"p" for points,~
"l" for lines,~
"b" for both, -- &new{2007-09-25 (火) 10:51:07};
- 久しぶりに?plotしたんですが、type="h"とか"s"って、昔か...
- どれくらい前のことを「昔」というかによりますが,動いて...
- あ、そうでしたか。ありがとうございます。 -- &new{2007-...
- 古い R をインストールして調べてみました。R 1.1.0 では,...
**igraphについて [#y7590742]
>[[あひる]] (2007-09-20 (木) 23:42:45)~
~
現在、大学でigraphを用いた授業を受けております。家でもじ...
//
- どのバージョンとか、OSは何だとか、どんなエラーが出る...
- どこの大学かは書かなくてもいいので(笑)、インストール...
- > Googleで検索したページでigraphのダウンロードはできた...
- 大学の授業なら、担当教官に聞くのが一番早いですよ。 -- ...
- 今夏休みで,かつ向学心に燃える学生なんでしょう -- &new...
- すみません、あまりこうゆうのには慣れていないもので。。O...
- まず、Rを起動してください。次にメニューから[パッケージ]...
- 上の方法で無事解決しました。どうもありがとうございますm...
**R Consoleの表示容量について [#ldc5578c]
>[[カイロ]] (2007-09-20 (木) 22:25:29)~
~
Rを利用して3日目です.医療データを用いたROC曲線を用いて予...
~
図のように,R Console上で数千行ある計算結果が得られるので...
~
宜しくお願いいたします.~
~
当方の環境:~
R version 2.5.1 (2007-06-27) ~
i386-pc-mingw32 ~
locale:~
LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;~
LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japan...
attached base packages:~
[1] "stats" "graphics" "grDevices" "utils" "data...
[6] "methods" "base" ~
~
#ref(consolegamen.png)~
~
//
- sink 関数を調べましょう。sink("foo.bar"); 作業; sink() ...
- できました! ".bar"を拡張子とするとうまく読めませんで...
- ところで,sink関数で吸い出された計算結果が必ずR本体のあ...
- setwd("作業ディレクトリ") -- [[aa]] &new{2007-09-21 (金...
- sink("c:/ファイル名") で直接ディレクトリ指定して落とせ...
- ご教示頂いた方法でうまくゆきました.aaさん,okinawaさん...
**nlme ライブラリ,lme のデフォルト [#i65fca75]
>[[キュロシ]] (2007-09-20 (木) 08:32:11)~
~
Mixed Effects Models in S and S-PLUS を勉強中のキュロシで...
作者(Pinheiro & Bates)に訊きなさい,という種の質問かも...
> library(nlme)
として nlme パッケージを使います.いくつかのデータセット ...
> f1 <- lme(Orange)
とすると,以下の結果が得られます.
> f1
Linear mixed-effects model fit by REML
Data: Orange
Log-restricted-likelihood: -139.9061
Fixed: circumference ~ age
(Intercept) age
17.3996502 0.1067703
Random effects:
Formula: ~age | Tree
Structure: General positive-definite
StdDev Corr
(Intercept) 1.89732541 (Intr)
age 0.02402639 -1
Residual 10.00622121
Number of Observations: 35
Number of Groups: 5
つまり,lme の argument である,fixed, random を data を...
とすると,
> f2<-lme(fixed=circumference ~ age, data=Orange, random...
とすることで同じ結果が得られそうなものですが,得られませ...
f1 のモデルが 収束しない f2 と何が違うのかがわかりません...
//
- lme(Orange) と同じ結果になるのは lme(fixed=circumferenc...
lme(fixed=circumference ~ age, data=Orange, random=~age|T...
- その場合の random effects は何なんでしょうか? -- [[キ...
- 私には分かりません。help に書いてあるかも。そもそも Mix...
- Pinheiro に訊いたところ, lme(Orange) とすると,まず l...
**回帰分析についての質問 [#j8da479f]
>[[netbean]] (2007-09-18 (火) 16:46:17)~
~
Rの初心者です。他ツールで解析経験がありますが、Rはまだ数...
step関数を用いてステップワイズ変数選択を実施する際、下記...
> step(RegModel.2)
Start: AIC= 189.44
。。。
object$residuals + predict(object) 中で警告がありました:
長いオブジェクトの長さが
短いオブジェクトの長さの倍数になっていません
以下にエラーlm.fit(x[, jj, drop = FALSE], y, offset = of...
矛盾した次元です
回帰のモデル精度が非常に低く、stepwiseを期待したいところ...
//
- エラーメッセージの通りです。object$residualsとpredict(o...
- 早速の回答、ありがとうございます。step関数の文法関して...
- あなたが何をどうやったのかがわかりませんので,回答不能...
- RegModel が何なのかわからないのに答えようがある? -- &...
- それにしても「使いはじめてから数時間」で質問するという...
- RegModelは、線形回帰の結果です。RegModel <- lm(X1_G~B+B...
- Data公開準備中です。Rの三日間セミナーで集中勉強し...
- 他のデータセットで動いて手持ちデータで動かないというこ...
- RegModel? <- lm(X1_G~B+BP+CH+CHP+CHPR, data=dataset) と...
- > 「使いはじめてから数時間」で質問する というのは,...
- 質問者本人じゃないですが、そんなに寄ってたかってつつか...
- つついているわけではなくて。ちゃんとした回答を得ようと...
ちょうど,この下の質問「判別分析の変数選択」を見てみたら...
- この掲示板って役にたつけどかなり雰囲気悪いよね.こわー...
- 恐いですよ(笑)。常連回答者はいささか無神経な質問に内心...
- 他の掲示板で、ここの場所の批判(袋だたきに会う、雰囲気...
- みなさん、いろんな意見とコメント、ありがとうございます...
- うまくいくほうといかないほうのデータを見比べて、少しず...
- 最初は他の人のスクリプトを書き換えながらこつを覚えるの...
**判別分析の変数選択 [#t57d70e8]
>[[mayu]] (2007-09-15 (土) 22:49:29)~
~
discの線形判別関数のソースを使い、判別分析をしています。~
自分が選んだ変数だけで解析したい場合どうすればいいのでし...
変数選択が出来るソースを探していたのですが見当たらず質問...
自分でプログラムを組めばいいのかもしれませんが、プログラ...
勉強不足ですみませんが、よろしければ回答お願いします。~
//
- disc とは何ぞや。「ソースを使い、判別分析」とは何ぞや....
- > 自分が選んだ変数だけで解析したい場合どうすれば~
そもそも,自分で選んだ説明変数を引数に指定するのでは?~
自分の望まない変数まで使われてしまうというのは被害妄想で...
二群判別なら,step(lm(ホゲホゲ))を使う。 &new{2007-09-16 ...
- 回答ありがとうございます。 説明不足ですみません。
discは、青木先生のホームページから頂いてきた線形判別関数...
自分で選んだ説明変数を指定して解析しようとするとエラーが...
> result <- disc(iris[,2,4], iris[5])
以下にエラーdata[OK, ] : 次元数が正しくありません
指定の方法が間違っているのでしょうか。
step(lm())ですか、勉強してみます。ありがとうございます。 ...
- disc( iris[c(2,4)], iris[5] ) . それと「変数選択」とい...
- この質問に関してデータフレームの添字操作に関する不可解...
> x <- data.frame(a=1:3, b=rnorm(3), c=runif(3), d=3:1)
> x[,2]
[1] -0.3922563 1.3033630 0.1997175
> x[,2,3] # これがエラーにな...
[1] -0.3922563 1.3033630 0.1997175
> x[,2,3,4]
以下にエラー`[.data.frame`(x, , 2, 3, 4) : 使われてい...
ああなるほど、x[,2,drop=3] つまり x[,2,drop=TRUE] と解釈...
- result <- disc(iris[,c(2,4)], iris[,5]) または,result2...
たいていの場合は,自分の使い方のミスを反省すべし。 -- &n...
- お礼が遅くなりすみません。皆様、ご回答ありがとうござい...
**数値データ、非数値データが混在するデータのカウント方法...
>[[terada]] (2007-09-14 (金) 21:20:20)~
~
こんにちは。数値データ、非数値データが混在するデータのカ...
> dat
記号1 記号2 記号3 記号4
90 B1 A1 A2 A2
91 B1 A1 A1 A1
92 B1 A1 A1
93 B1 A1 A1 A1
94 B1 B1 B3 K
95 K ...
96 B0 B0 B1 A1
97 B0
98 B1 A1
99 3
100 3
101 2
102 2
103 1
以上のようなデータ(14行4列のデータで、空いているところはn...
よろしくお願いします。~
~
すみません。質問の仕方が不適切でした。訂正します。
以下のような結果が得たいという意図で質問しました。
A1 A2 A3 B0 B1 B2 B3 K 1 2 3
11 2 0 3 7 0 1 2 1 2 2
再度アドバイスをいただければ幸いです。よろしくお願いしま...
//
- 例えば(簡単な例で、質問者も意味がわかる最小限の例を提...
> ( d <- data.frame(x=c("a","",3,1), y=c(1,2,"","a")) )
x y
1 a 1
2 2
3 3
4 1 a
> ( ud <- unlist(d) ) # リスト、データフレー...
x1 x2 x3 x4 y1 y2 y3 y4
a 3 1 1 2 a
Levels: 1 3 a 2
> levels(ud) <- c(levels(ud),"d") # データフレームに登場...
> ud
x1 x2 x3 x4 y1 y2 y3 y4
a 3 1 1 2 a
Levels: 1 3 a 2 d
> table(ud)
ud
1 3 a 2 d
2 2 1 2 1 0 # 先頭の2は空文字列が2回登場した、という意味
- ついでながら。数値と文字が混在するデータフレームでは、...
- うーん,このやりかたではうまくいかない? それとも空項目...
> table(ud)[-1] # 但し空文字水準がいつも先頭にくるかど...
ud
1 3 a 2 d
2 1 2 1 0
- 最初の質問を書き換えませんでした?一度コメントが付いた...
- 重ね重ねすみません。大幅な変更ではないので問題ないと思...
- ルール違反というのは,それに対するコメントが頓珍漢にな...
- 今日やっと解決しました。アドバイスありがとうございまし...
- ついでにどうしたら解決したのか報告していただくと、他の...
- 2度目にアドバイスしていただいた方法で解決することができ...
**ベクトルから特定の要素を削除するには? [#ab6b7e74]
>[[青葉]] (2007-09-13 (木) 13:40:42)~
~
昨日から始めた初心者です。壁にごつんごつん当たりながら進...
~
xから、yの中にある要素を数も考慮して取り除きたいのですが...
x <- c(1,1,1,2,2,2,3,3,3)~
y <- c(1,2,2)~
この2つから、(1,1,2,3,3,3)というベクトルを作りたいのです。~
また、xから要素の種類だけ特定して取り除くことが可能でしょ...
例えばx <- c(1,1,1,2,2,2,3,3,3)から2という数字だけを指定...
検索の仕方が悪いのかもしれませんが、苦戦しております。ど...
//
- この程度のことは自分でなんとかして初めてRへの理解が進む...
- コメントありがとうございます。ヒントだけいただいてよろ...
- (okinawa さんの意見に内心同感ながら) x[-which(x == 2)...
- x[!x%in%2]とか。~
[[教えて君:http://myu.daa.jp/osiete/]]にならないように頑...
- 最初の例は for ループを素直に使うべき例? -- &new{2007-...
> xx <- x
## match は最初のマッチ位置を返すので好都合
## xx を順次縮小変更していることに注意
> for (i in y) xx <- xx[-match(i,xx)]
> xx
[1] 1 1 2 3 3 3
- みなさまコメントありがとうございます。小さな壁は自分で...
- 奇策を弄す -- &new{2007-09-13 (木) 15:26:04};
> x <- c(1,1,1,2,2,2,3,3,3)
> y <- c(1,2,2)
> result <- merge(data.frame(a=table(x)),
+ data.frame(a=table(y)),
+ by.x="a.x", by.y="a.y", all=TRUE)
> rep(as.numeric(levels(result[,1]))[result[,1]],
+ ifelse(is.na(result[,3]), result[,2], result[,2]-r...
[1] 1 1 2 3 3 3
- rep(unique(x),c(table(x) - table(factor(y,levels=unique...
**ベクトルの要素の種類数を知るには? [#t92e615a]
>[[青葉]] (2007-09-13 (木) 00:13:47)~
~
今日使い始めたばかりの初心者です。~
ベクトルの要素の数を知るにはlengthで良いことは分かったの...
例えば、x <- c(1, 1, 2, 2, 2, 3)だったら、要素の数は6です...
どなたかどうぞよろしくお願いします。~
//
- length(unique(x)) 他にも一発の関数はありそうだけど。 --...
- ありがとうございます!これでやっと先に進めます。感謝で...
- R 本体には一発関数はないと思います。takahashi さんの例...
> factor(x)
[1] 1 1 2 2 2 3
Levels: 1 2 3
> nlevels(factor(x))
[1] 3
> union(x,NULL)
[1] 1 2 3
> length(union(x,NULL))
[1] 3
> duplicated(x)
[1] FALSE TRUE FALSE TRUE TRUE FALSE
> sum(!duplicated(x))
[1] 3
> table(x)
x
1 2 3
2 3 1
> names(table(x))
[1] "1" "2" "3"
> length(names(table(x)))
[1] 3
> sum(table(x) == 2) # 丁度二回登場した要素数
[1] 1
- 副作用ならsummary(factor(x))とか -- &new{2007-09-13 (...
- 答えは3にならないといけないので,summary(factor(x)) で...
- 他の方々もコメントありがとうございます。予想外に多くの...
**tcltk のロードができません [#pec97a42]
>[[yosito]] (2007-09-11 (火) 18:21:39)~
~
R 初心者です。環境は MacOS X (10.4) にて、R.app を使って...
tcltk は標準で package に含まれているのですが、いざロード...
以下のようなメッセージが出てロードできませんでした。
要求されたパッケージ tcltk をロード中です
Tcl/Tk インターフェース ロード中... Error in fun(...) : ...
Error : .onLoad は 'tcltk' のための 'loadNamespace' で...
エラー: パッケージ 'tcltk' をロードできませんでした
どなたか対処法をご存知でしたら、教えてください~
//
- Tcltkが必要なパッケージを起動させる場合は、X11を起動し...
- Rを起動した後でも,X11が必要になったら,ツールバーの「X...
- どうもありがとうございました。X11 を起動させておく必要...
**nlme ライブラリ内の plot のマージンを変更する方法 [#kf2...
>[[キュロシ]] (2007-09-11 (火) 04:42:46)~
~
Pinheiro & Bates の "Mixed-Effect Models in S and S-PLUS"...
library(nlme)
とした後~
plot(Dialyzer,outer=~QB)
を実行すると,下図のようなきれいな図が描けます.~
~
#ref(groupedData1.jpg)~
~
ひとつだけ大きな外れ値があったとします.すなわち~
Dialyzer$rate[1] <- 500
です.~
~
ここで,先ほどと同じ図を描こうとすると~
plot(Dialyzer,outer=~QB)
マージンが妙に大きい奇妙なプロットになってしまいます.~
~
#ref(groupedData2.jpg)~
~
このマージンを自由に変更したいのですが,いまひとつやり方...
ヘルプファイルは~
?plot.nffGroupedData(nlme)
だと思うのですが,該当するヘルプがわかりませんでした.~
このマージンはどのように変更できるのでしょうか?~
//
- マージンって何ですか?ylimのことですか?plot(Dialyzer,out...
- そんなに極端な外れ値がある場合,全部を含めた図を描こう...
- ヘルプがあるとすれば見方は ?plot.nffGroupedData で...
- ylim の値によって,プロットの見た目が上記の例のように変...
- コメントに従って help を見ていますか?~
plot(Dialyzer,outer=~QB, log="y", asp=1)
のように,log パラメータと asp パラメータを使うのが吉かと...
それにしても,極端な外れ値ですねぇ。~
それと,グラフファイルはjpegは不適切ですよ。pngがよいでし...
#ref(nlme-plot.png)
- ありがとうございました.別に外れ値でなくてもよかったの...
- > ylim の値によって, asp が変わる~
普通はその方が好ましい(少なくとも作者はそう考えた)と言う...
しかし,場合によっては困るのでasp引数を使うと言うことでし...
理由が知りたい場合は,パッケージの作者にお聞き下さい(^_^;...
- パッケージ作者はこんなおかしなデータのことまで考慮して...
**特定の行と列を削除した行列の作り方 [#u83f0050]
>[[KK]] (2007-09-10 (月) 11:57:13)~
~
ある行列Aの特定の行および列を削除した行列Bを作りたい場...
よろしくお願いいたします。~
//
- 添え字の指定の仕方を調べましょう[[行列Tips大全]]などを...
- 検索不足でした。ありがとうございます。 -- [[KK]] &new...
**日付+時刻の時系列のプロットでの扱い [#h997d662]
>[[たけ]] (2007-09-01 (土) 15:54:42)~
~
たとえば2006/01/01 00:00:00から2007/09/01 15:48:32までの...
どうぞよろしくお願いします。~
//
- 例えば -- &new{2007-09-01 (土) 19:42:36};
gnp <- ts(cumsum(1 + round(rnorm(365), 2))) # ...
Dt <- seq(as.Date("2001-1-1"), len=365, by="1 day") # 2...
DDt <- sub("2001-","",Dt) # "...
plot(gnp, xaxt="n") # x...
Dy <- 1+50*(0:7) # ...
Dc <- DDt[Dy] # ...
axis(1,at=Dy, labels=Dc) # ...
あとは Dy (必要に応じて DDt も) を好きなように変えればよ...
- ありがとうございます。テキスト処理に不慣れでしたが、何...
**2つの因子の重複 [#qa14a61a]
>[[KEN]] (2007-08-30 (木) 17:53:43)~
~
2つのデータ(data1とdata2)の各因子(1〜6)の一致をみたい...
data1 data2
1 A B
2 B A
3 B B
4 B A
5 A B
使用環境:R version 2.4.1 (2006-12-18) i386-pc-mingw32~
//
- たとえば -- &new{2007-08-30 (木) 18:01:59};
> x
data1 data2
1 B B
2 A B
3 B A
4 A A
5 A A
> sum(x$data1 == x$data2)
[1] 3
> mean(x$data1 == x$data2)
[1] 0.6
注:アーカイブに投稿されていましたので、移動しました.
- どうもありがとうございました。早速試してみます。 -- [[K...
- 試してみましたところエラーがでました「以下にエラーOps.f...
- 老婆心ながら。x$data1 == x$data2 は各行毎に一致するかど...
- コマンド str(x$data1) と str(x$data2) の結果を投稿し...
- > エラーがでました データフレームはちゃんと作られてい...
- factor の比較は注意が必要。 -- &new{2007-08-30 (木) 19...
比較するfactor ベクトルの水準数が等しくないとエラーになる
> x <- data.frame(data1 = factor(sample(letters[1:6], 10...
+ data2 = factor(sample(letters[1:6], 10, replace=TRUE)))
> x
data1 data2
1 d f
2 c d
3 f f
4 a b
5 c a
6 d d
7 d e
8 f c
9 c a
10 e e
> x$data1 == x$data2
以下にエラーOps.factor(x$data1, x$data2) : 因子の水準...
> levels(x$data1)
[1] "a" "c" "d" "e" "f" ← "b" がない
> levels(x$data2)
[1] "a" "b" "c" "d" "e" "f"
文字型のまま比較した方がよい
- 本来の値に戻して sum( levels(x$data1)[x$data1] == leve...
- ↑ character にして比較しているので○。もし,データファイ...
- str(x$data1)は「Factor w/ 4 levels」、str(x$data2)は「F...
- sum( levels(x$data1)[x$data1] == levels(x$data2)[x$data...
- 念のため。 levels(x$data1)[x$data1] は仮に x$data1 が...
- [[因子Tips大全]] 参照。 -- &new{2007-09-02 (日) 07:52:...
**heatmapのlegend [#nd006177]
>[[みゅー]] (2007-08-29 (水) 11:02:21)~
~
かなり調べたつもりなのですが、heatmapのlegendのつけ方がわ...
//
- 例えば次の例など参考になりますか.これは Zoonekynd 氏の...
# Polar plot to spot seasonal patterns
x <- as.vector(UKgas)
n <- length(x)
theta <- seq(0, by=2*pi/4, length=n)
plot(x * cos(theta), x * sin(theta),
type = "l",
xlab = "", ylab = "",
main = "UK gas consumption")
abline(h=0, v=0, col="grey")
abline(0, 1, col="grey")
abline(0, -1, col="grey")
circle <- function (x, y, r, N=100, ...) {
theta <- seq(0, 2*pi, length=N+1)
lines(x + r * cos(theta), y + r * sin(theta), ...)
}
circle(0,0, 250, col="grey")
circle(0,0, 500, col="grey")
circle(0,0, 750, col="grey")
circle(0,0, 1000, col="grey")
circle(0,0, 1250, col="grey")
segments( x[-n] * cos(theta[-n]),
x[-n] * sin(theta[-n]),
x[-1] * cos(theta[-1]),
x[-1] * sin(theta[-1]),
col = terrain.colors(length(x)),
lwd = 3)
text(par("usr")[2], 0, "Winter", adj=c(1,0))
text(0, par("usr")[4], "Spring", adj=c(0,1))
text(par("usr")[1], 0, "Summer", adj=c(0,0))
text(0, par("usr")[3], "Autumn", adj=c(0,0))
legend("topright", legend = c(1960, 1973, 1986),
fill = terrain.colors(3)) # このあたり
- 助かります。ありがとうございます。早速試してみます。 --...
- R Graphics Manual はRのパッケージ中の Example 画像を一...
**Rのコンパイラー [#f5ef362f]
>[[あつ]] (2007-08-28 (火) 18:31:23)~
~
http://www.cs.uiowa.edu/~luke/R/compiler/~
RのコンパイラーをWindowsのマシンに入れようとするのですが...
tar.gz形式なので、一度展開してzip形式にしてGUI画面から読...
仕方なく
R CMD INSTALL compiler_0.1.-3.tar.gz
としても、テンポラリーの位置が合わないのか展開されせん。t...
どうやったら、これがR-2.5.1で動くか、どなたかお教え願えま...
//
- エラーが良く分からないのですが、古いRが残っていて、新し...
- R byte compiler は久しく開発が停止しています.そもそも ...
- 古いRは、残っていません。> > library(compiler)以下にエ...
- Linuxはないので、sparcのsolaris10で試してみたら、そのま...
- 解凍したパッケージのR/cmp.Rを、そのままwindowsの画面に...
**変数の交換 [#c0138f48]
>[[とも]] (2007-08-27 (月) 17:29:39)~
~
中間変数を使わずに内容を交換することは可能ですか。例とし...
a1 <- c(1,2,3)
a2 <- c(2,3,4)
z <- a1
a1 <- a2
a2 <- z
//
- できないでしょう。 -- &new{2007-08-27 (月) 18:38:24};
- 結局明示的にせよ暗黙にせよ中間変数を使わない限りスワッ...
> swap <- function(a,b) {tmp <- b; b <<- a; a <<- tmp}
> a=1:5; b=rnorm(5)
> swap(a,b)
> a
[1] 0.25953799 -0.13130845 0.51087979 -0.67557507 0.6...
> b
[1] 1 2 3 4 5
なお、例えば行列の列や行の交換は次のようにすれば(明示的...
> X[c(m,n),] <- X[c(n,m),] # m 行と n 行の交換
- "中間変数"を使わない例(笑) -- &new{2007-08-27 (月) 19:...
> a <- 1:3; b <- rnorm(3)
> a <- list(a,b); b <- a[[1]]; a <- a[[2]]
> a
[1] 1.23461645 -0.08733515 0.62929149
> b
[1] 1 2 3
- listはデータ構造が違うので,ベクトルの中間変数ではない...
a <- 1:3
b <- rnorm(3)
write(a,"temp")
write(b,"temp2")
b <- scan("temp")
a <- scan("temp2")
- list の例の類例ですが -- &new{2007-08-27 (月) 21:07:54};
a <- 1:3; b <- rnorm(3)
a <- rbind(a, b)
b <- a[1,]
a <- a[2,]
まあ,いずれも,トリビアルな例
- RubyではできるのでRではどうかなと思っていましたが、でき...
- スワップを行うシステム関数があるかどうかというご質問だ...
- 「Rubyではできるので」 裏で中間変数を使ってるんじゃない...
- Rにはスワップのための関数や演算子の使い方があるのかなと...
- a1 <- a1+a2 a2<- a1-a2 a1 <- a1-a2 でできませんかね...
- この問題が「クイズとして」出されるときに裏技として解説...
> a1 <- 1e10; a2 <- 1e-10
> a1
[1] 1e+10
> a2
[1] 1e-10
> a1 <- a1+a2; a2<- a1-a2; a1 <- a1-a2
> a1
[1] 0 ← これは困る
> a2
[1] 1e+10
**関数内の変数が展開されない [#dfa68852]
>[[kutakuta]] (2007-08-24 (金) 20:46:58)~
~
よろしくお願いします。
R version 2.5.1 (2007-06-27) powerpc-apple-darwin8.9.1 を...
ggplotというライブラリをつかって箱ヒゲ図+jitterplotを作ろ...
行列"data"の中に"class"というカラムと"colx"(x=1-N)という...
例:
http://bg9.imslab.co.jp/Rhelp/R-2.4.0/src/library/ggplot/...
p <- ggplot(data,aesthetic=list(y = class, x = col1))
ggjitter(ggplot(p))
とするとうまく目的の図が得られるのですが、
i <- 1
p <- ggplot(data,aesthetic=list(x = class, y = paste("co...
ggjitter(ggplot(p))
とするとうまくいきません。
summary(p)で変数の中身をみてみると、xの値が望みの"col1"で...
いろいろ試してみたのですが、どうしてもこの問題が解決でき...
どなたかヒントをいただけないでしょうか。
//
- paste("col",i,sep="")で変数名が作れるとは思えません。ev...
- 必要なデータの定義などもちゃんと付けて質問しましょう。...
- つまりあなたは x = col1 ではなく x = "col1" と指定した...
x = data[[i+1]] # データフレームなら
x = data[,i+1] # 行列なら
- ご返答ありがとうございます。質問で十分な情報を書かなか...
dataにはクラス名(0/1の2クラス)が"class"という添字付きで...
ggplot関数でx=...の...の部分はカラムの添字を代入するよう...
- かなり意味不明(失礼)。まずカラムなどといういい方はど...
- 小さいセットで良いので手持ちのデータとあなたがしたこと...
- あなたのやったことを再現できないんですよ~
> p <- ggplot(data,aesthetic=list(y = class, x = col1))~
> ggjitter(ggplot(p))~
> とするとうまく目的の図が得られるのですが、~
と書いているんだが,そもそもこの前の方のdata がどういう風...
data <- data.frame(class=factor(rep(1:4, each=10)),
col1=rnorm(40), col2=rnorm(40))
ぐらいかなと思うが,これじゃエラーメッセージが出てしまい...
- kutakutaさん、まず str(data) の結果を見せていただけま...
- 質問の仕方があまりにも拙く、余計なお手数をおかけしてし...
## load library
library(ggplot)
## create data
data <- data.frame(matrix(c(rep(0,10),rep(1,10),rnorm(60...
data[,1] <- factor(data[,1])
colnames(data) <- c("class","col1","col2","col3")
## do each process (it works).
pdf("col1_doeach.pdf")
p <- ggplot(data,aesthetic=list(y = col1,x = class))
ggjitter(ggboxplot(p))
dev.off()
pdf("col2_doeach.pdf")
p <- ggplot(data,aesthetic=list(y = col2,x = class))
ggjitter(ggboxplot(p))
dev.off()
pdf("col3_doeach.pdf")
p <- ggplot(data,aesthetic=list(y = col3,x = class))
ggjitter(ggboxplot(p))
dev.off()
## use variable (doesn't work)
column_name <- "col1"
pdf("col1_var.pdf")
p <- ggplot(data,aesthetic=list(y = column_name,x = clas...
ggjitter(ggboxplot(p))
dev.off()
## use 'for' (doesn't work).
for (i in 1:3){
column_label = paste("col",i,sep="")
p <- ggplot(data,aesthetic=list(y = column_label,x = cl...
pdf(paste(column_label,".pdf",sep="")
gjitter(ggboxplot(p))
dev.off()
}
以上のコードのうち、"do each"の部分は意図したように動きま...
ご回答者の方が指摘されている通り、列のラベルを文字列で指...
なぜ変数に列のラベルを入れる事にこだわっているかと言うと...
質問内容、質問の仕方ともに未熟な部分があり不愉快な思いを...
- 本質的な解決ではないかもしれませんが。ggplotが吐き出す...
for (i in 1:3){
column_label = paste("col",i,sep="")
p <- ggplot(data,aesthetic=list(y = column_label,x = cl...
p$ylabel <- column_label
p$defaults[[1]] <- uneval(as.formula(paste(column_label...
ggjitter(ggboxplot(p))
}
- ご返答どうもありがとうございます。~
ご案内いただいた通りにやってみてsummary(p)で確認するとpの...
ただ、私の環境では最後のggjitter(ggplot(p))の部分で~
以下にエラーas.data.frame.default(x[[i]], optional = TRU...
クラス "function" はデータフレームに強制変換できま...
というエラーが出てしまいました~
私自身いただいたソースの意味をまだきちんと理解できていま...
週末にもかかわらずご返答ありがとうございました。 -- [[kut...
- p <- ggplot(data,aesthetic=list(y = get(column_name),x ...
- ご回答ありがとうございます。ご指摘いただいた方法でやっ...
> summary(p)
Title:
Labels: x=class, y=get(column_label)
Data: class, col1, col2, col3 [20x4]
Defaults: y=get(column_label), x=class
Scales:
Grobs:
Facetting: ". ~ ."
Margins: FALSE
という風にget(column_label)の部分が展開されないままとなっ...
- p <- ggplot(data,aesthetic=list(y = get(column_name),x ...
- 最初の質問で aesthetic=list(y = class, x = col1) にな...
で,要するにaesthetic=list(y = col1, x=class) なんであっ...
library(ggplot)
## create data
data <- data.frame(matrix(c(rep(0,10),rep(1,10),rnorm(60...
data[,1] <- factor(data[,1])
colnames(data) <- c("class","col1","col2","col3")
i=3
p <- ggplot(data,aesthetic=list(y = eval(parse(text=past...
ggjitter(ggboxplot(p))
最初から,data を付けて質問すれば,直ぐ解決したことだと思...
- ご返答ありがとうございます。ご指摘の通りはじめに示した...
> summary(p)
Title:
Labels: x=class, y=eval(parse(text = paste("col", i, ...
Data: class, col1, col2, col3 [20x4]
Defaults: y=eval(parse(text = paste("col", i, sep = "")...
Scales:
Grobs:
Facetting: ". ~ ."
Margins: FALSE
なにぶん初心者なものでプログラミングのスジ自体が良くない...
私自身スジの悪さは認識しておりますので、ご回答者様が不愉...
- kutakutaさん,お役に立てず申し訳ございませんでした。な...
- おかしいですね。なぜ動かないのでしょう。~
別に回答者は不快に思っているわけではないと思いますよ。こ...
> library(ggplot)
要求されたパッケージ grid をロード中です
要求されたパッケージ reshape をロード中です
要求されたパッケージ RColorBrewer をロード中です
次のパッケージを付け加えます: 'ggplot'
The following object(s) are masked _by_ .GlobalEnv :
alpha
> ## create data
> data <- data.frame(matrix(c(rep(0,10),rep(1,10),rnorm(...
> data[,1] <- factor(data[,1])
> colnames(data) <- c("class","col1","col2","col3")
> i=3
> p <- ggplot(data,aesthetic=list(y = eval(parse(text=pa...
> ggjitter(ggboxplot(p))
> summary(p)
Title:
Labels: x=class, y=eval(parse(text = paste("col", i,...
Data: class, col1, col2, col3 [20x4]
Defaults: y=eval(parse(text = paste("col", i, sep = ""...
Scales:
Grobs:
Facetting: ". ~ ."
Margins: FALSE
> str(p)
List of 11
$ data :'data.frame': 20 obs. of 4 variables:
..$ class: Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1...
..$ col1 : num [1:20] 0.205 1.523 0.946 -0.496 0.8...
..$ col2 : num [1:20] 0.0696 -1.5451 1.1064 -1.4103 ...
..$ col3 : num [1:20] 0.527 0.828 0.972 0.352 1.200 ...
$ grobs : list()
$ scales : list()
..- attr(*, "class")= chr "scales"
$ defaults :List of 2
..$ y: language eval(parse(text = paste("col", i, sep ...
..$ x: symbol class
$ title : chr ""
$ fixedaspect: logi FALSE
$ xlabel : chr "class"
$ ylabel : chr "eval(parse(text = paste(?"col?", i,...
$ formula : chr ". ~ ."
$ margins : logi FALSE
$ facet :List of 1
$ : num 0
- attr(*, "dim")= int [1:2] 1 1
- attr(*, "dimnames")=List of 2
..$ : chr "value"
..$ : chr "value"
- attr(*, "rdimnames")=List of 2
..$ :'data.frame': 1 obs. of 1 variable:
.. ..$ value: Factor w/ 1 level "value": 1
..$ :'data.frame': 1 obs. of 1 variable:
.. ..$ value: Factor w/ 1 level "value": 1
- attr(*, "idvars")= chr "value"
- attr(*, "class")= chr "ggplot"
こんな風になって,以下のような図が描けましたけど。 -- &n...
#ref(ggplot99.png)
- たぶん望む物が2つ重なって質問されているのではないでし...
i<-3 # = より <- を使いましょう
text<-paste("p <- ggplot(data,aesthetic=list(y = ","col"...
eval(parse(text = text))
ggjitter(ggboxplot(p))
のようにするとy軸ラベルが望む物になるとおもいます。また、...
- まあ,確かに ggplot は変な仕様ですね。ついでに言えばデ...
- boxplot と points を使って描くと以下のようなもの。ラベ...
set.seed(1234)
data <- data.frame(class=factor(rep(0:1,each=10)), col1=...
layout(matrix(1:3, ncol=3))
par(cex=1.2)
for (i in 1:3) {
boxplot(eval(parse(text=paste("col", i, sep="")))~class,...
points(jitter(as.numeric(data$class)), eval(parse(text=p...
}
#ref(ggplot98.png)
なお,上のような場合だと,
boxplot(data$class, data[,i+1], outline=FALSE)
points(jitter(as.numeric(data$class)), data[,i+1], col="...
とする方が,簡明・明快
- good job! 質問と乖離しましたが、ggplotを使わないほうが...
- うまく行きました。皆さまありがとうございました。 -- [[k...
**Rコマンダーの日本語表示について [#p5662af0]
>[[J]] (2007-08-23 (木) 20:55:38)~
~
Mac OS 10.4.10 上で R ver.2.5.1 とRcmdr 1.3-5 を使ってい...
Rコマンダーの日本語メニュー表示がやや読みにくいのですが,...
//
- どういう風に読みにくいのでしょうか?また,もし「fontの設...
- 言葉足らずで失礼しました。メニュー等の日本語表示で文字...
オプションでdefault fontを変えてみようと試みましたが失敗...
- 我流ですが...
1. ttfを持ってくる
http://sourceforge.jp/projects/efont/ から sazanamiあ...
tar jxvf sazanami-20040629.tar.bz2
2. 自前用のフォントの格納ディレクトリを作成
mkdir -p /usr/X11R6/lib/X11/fonts/japanese
3. フォントのコピー
cp sazanami*.ttf /usr/X11R6/lib/X11/fonts/japanese/
4. /usr/X11R6/lib/X11/fonts/japanese/fonts.dirの作成
==================== ここから ==========================...
32
vl=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
==================== ここまで ==========================...
5. フォントパスの追加
xset +fp reash の追加
--- /etc/X11/xinit/xinitrc.orig
+++ /etc/X11/xinit/xinitrc
@@ -24,6 +24,9 @@
xmodmap "$usermodmap"
fi
+xset +fp /usr/X11R6/lib/X11/fonts/japanese
+xset reash
+
# start some nice programs
xterm &
otfだとTTCapのイタリックが使えないので, ttfがR的にはおす...
- RにおけるMacOSXでのtcltkはX11を使います. X11のフォント...
- 仰る通り,私が知りたかったのは「OSX上でRcmdrのフォント...
ご教示頂いたやり方は,私には少し敷居が高いのですが勉強し...
**ファイル出力加工 [#h9dfadc5]
>[[Bun]] (2007-08-23 (木) 20:21:21)~
~
R初心者です。分かりづらい標記でしたら、ご指摘の程よろし...
~
以下のプログラムで、クロス集計の結果を外部出力しました。
x<-c(1,2,1,2,1,2)
y<-c(1,1,1,2,2,2)
z<-data.frame(x,y)
z[,1] <- factor(z[,1], levels=1:2, labels=c("男", "女"))
XTBL<-table(z[,1],z[,2])
write.table(XTBL, file="C:/XTBL.txt", append=F, quote=F,...
下記は、出力結果
1 2
男 2 1
女 1 2
上記の結果ファイルをエクセルで読み込み、作業したいのです...
//
- どのような結果を期待しているのかよくわからない。以下の...
> x<-c(1,2,1,2,1,2)
> y<-c(1,1,1,2,2,2)
> x <- factor(x, levels=1:2, labels=c("男", "女"))
> y <- factor(y, levels=1:2, labels=c("あり", "なし"))
> XTBL<-table(x,y)
> XTBL
y
x あり なし
男 2 1
女 1 2
> 上記の結果ファイルをエクセルで読み込み、作業したいので...
なんで,Excel なんかで読んで作業するんだろう
- fix(XTBL)でデータエディタで見ると、row.namesという変数...
- 次のようにすればそれらしくなりますが。 -- &new{2007-08...
> z <- data.frame(x,y)
> z[,1] <- factor(z[,1], levels=1:2, labels=c("男", "女"))
> XTBL <- table(z, dnn=c("sex",""))
> XTBL
sex 1 2
男 2 1
女 1 2
- ご回答ありがとうございます。テキストファイルの生成時に...
- ?write.tableでcol.namesのoptionを見ましょう。Bunさんの...
write.table(z, firle="hoge.csv", col.names=NA, sep=",")
です。ExcelでできるならExcelですれば良いと思います。私は...
それにしてもhelpを読まない人が多すぎます... -- &new{2007...
- ↑(内心)同感ですが、一方で計算機ソフトのヘルプ文章は、...
- 解決できました。どうもありがとうございました。 -- [[Bun...
**Rコマンドファイル内からディレクトリ作成は出来ますか? [...
>[[みゅー]] (2007-08-23 (木) 16:21:27)~
~
R初心者につき言葉足らずな質問になっていたらごめんなさい。...
~
大量のファイルが生成されるため種類ごとに出力を分けたいと...
シェルコマンドのmkdirに対応するようなRコマンドはあります...
みつけられませんでした。~
(ls()やrmは使えるようですね。)~
~
単に、./以下にhogeディレクトリを作成していない状態のまま"...
先に./hogeを用意しておかないとだめ、~
ディレクトリ生成はできないということでしょうか。~
//
- shell("mkdir hoge")でたいがいのシステムではいけるんじゃ...
- ?dir.create -- [[なかま]] &new{2007-08-23 (木) 16:48:10};
- dir.createでいけました ありがとうございます -- [[み...
- shell は通りませんでした。 関数"shell"を見つけることが...
- 追加自己解決です。windowsならshell()でいけますね。unix...
- Windowsでもsystem()は使えます。DOS系コマンドはshell()で...
**変数名の修正 [#odeeb70c]
>[[Bun]] (2007-08-23 (木) 15:22:23)~
~
既に変数名を含んだデータセットについて、一部の変数名を新...
//
- 簡単な具体例を挙げてください。回答者に余分な推測をさせ...
- colnames(df)[4] <- "new.name" -- &new{2007-08-23 (木) ...
- 元のデータファイルの変数名を書き換える -- &new{2007-08...
- ありがとうございます。2番目の方の回答で解決できました...
**関数実行時の入力文字列の取得方法 [#j5591758]
>[[r_user]] (2007-08-18 (土) 10:14:36)~
~
たとえば、f(x)と入力して関数fを実行すると、関数にはオブジ...
中身だけでなく、文字列xも取得して利用できるような関数を定...
引用符を付けてf("x")のようにするのではなく、普通にf(x)と...
xの中身に加えて、"x"という文字列も取得して利用できないも...
//
- f<-function(...)print(paste(match.call())[-1]) -- [[tak...
- 少し趣旨が違いますが,Rで仮引数の(未評価)実引数を取り...
> foo <- function(x) {substitute(x)}
> y <- foo(1:10)
> str(y)
language 1:10
> eval(y)
[1] 1 2 3 4 5 6 7 8 9 10
- ご教授ありがとうございます。match.call()、substitute()...
- もう少し簡略に(htest 属性を持つ stats の関数で常用され...
bar <- function(x) return(deparse(substitute(x)))
**条件によるIDの振り分けについて [#c1fac891]
>[[suzuki]] (2007-08-17 (金) 17:17:46)~
~
はじめまして。こんにちは。~
データによるIDの振り分けについて質問させてください。~
~
DATA1 DATA2 DATA3
1 30 1
1 30 1
1 30 1
1 30 2
1 30 2
1 31 1
1 31 1
1 31 1
1 31 1
2 30 1
2 30 2
2 30 2
2 30 2
2 30 3
2 30 3
~
以上のようなデータがあって、以下のようにDATA1、DATA2、DAT...
IDを振り分けていきたいのですが、各IDの行数がランダムであ...
ある程度、手作業でできなくもないのですが、20万行ほどのデ...
アドバイスよろしくお願いします。~
~
DATA1 DATA2 DATA3 ID
1 30 1 1
1 30 1 1
1 30 1 1
1 30 2 2
1 30 2 2
1 31 1 3
1 31 1 3
1 31 1 3
1 31 1 3
2 30 1 4
2 30 2 5
2 30 2 5
2 30 2 5
2 30 3 6
2 30 3 6
//
- 美しくないしコストも考えてないけど、dはデータフレームで...
- 以下のようにするのはいかが?このやり方だと,フィールドが...
> y <- apply(x, 1, paste, collapse="/")
> z <- names(table(y))
> x["ID"] <- sapply(y, function(i) which (i == z))
> x
DATA1 DATA2 DATA3 ID
1 1 30 1 1
2 1 30 1 1
3 1 30 1 1
4 1 30 2 2
5 1 30 2 2
6 1 31 1 3
7 1 31 1 3
8 1 31 1 3
9 1 31 1 3
10 2 30 1 4
11 2 30 2 5
12 2 30 2 5
13 2 30 2 5
14 2 30 3 6
15 2 30 3 6
- もし DATA1,DATA2,DATA3 が全て非負整数値であまり大きくな...
> a <- max(x)+1
> xx <- transform(x, ID=as.factor(x[,1]*a^2+x[,2]*a+x[,3...
> xx
DATA1 DATA2 DATA3 ID
1 1 30 1 1985 # 数値に拘らなければこれだけ...
2 1 30 1 1985
3 1 30 1 1985
4 1 30 2 1986
5 1 30 2 1986
6 1 31 1 2017
7 1 31 1 2017
8 1 31 1 2017
9 1 31 1 2017
10 2 30 1 3009
11 2 30 2 3010
12 2 30 2 3010
13 2 30 2 3010
14 2 30 3 3011
15 2 30 3 3011
> levels(xx[,4]) <- 1:nlevels(xx[,4]) # もし1,2,3,...と...
> xx
DATA1 DATA2 DATA3 ID # ただしIDは因子です
1 1 30 1 1
2 1 30 1 1
3 1 30 1 1
4 1 30 2 2
5 1 30 2 2
6 1 31 1 3
7 1 31 1 3
8 1 31 1 3
9 1 31 1 3
10 2 30 1 4
11 2 30 2 5
12 2 30 2 5
13 2 30 2 5
14 2 30 3 6
15 2 30 3 6
> xx[,4] <- as.integer(xx[,4]) # もし因子でなく整数値の...
時間比較例:
> set.seed(1)
> x <- data.frame(DATA1=sample(1:10, 2e5, rep=TRUE),
DATA2=sample(20:40, 2e5, rep=TRUE),
DATA3=sample(10:20, 2e5, rep=TRUE))
> a <- max(x)+1
> system.time({xx <- transform(x, ID=as.factor(x[,1]*a^2...
levels(xx[,4]) <- 1:nlevels(xx[,4])})
ユーザ システム 経過
0.196 0.124 0.929
> system.time({y <- apply(x, 1, paste, collapse="/"); z ...
x["ID"] <- sapply(y, function(i) which (i ...
ユーザ システム 経過
147.873 0.656 154.912
- 本当にありがとうございます。自分が組んでいたプログラム...
**Rcmdr QQプロット [#lf955165]
>[[KT]] (2007-08-15 (水) 18:25:40)~
~
Rcmdrで2つのデータをQQプロットに同時にのせたいと思います...
//
- RcmdrはRにGUI環境をつけただけと思うので、Rでできるなら...
- Rcmdr でできるかどうかは問題じゃなくて,R でできるかど...
- 色をかえて、2つのデータを同時に1つの図の上に載せたい...
- それらしいものを書くには、スクリプトウィンドウに出てい...
> qqnorm(a,xlim=c(-3,3),ylim=c(min(c(a,b)),max(c(a,b))),...
> par(new=T)
> qqnorm(b,xlim=c(-3,3),ylim=c(min(c(a,b)),max(c(a,b))),...
とかにすると、軸を一致させたプロットになります。
でも、直線にだいたいのっているかどうかを比べてみたいだけ...
> qqnorm(a,xlim=c(-3,3),yaxt="n",col="red")
> par(new=T)
> qqnorm(b,xlim=c(-3,3),yaxt="n",col="blue")
というのもありかもしれませんね。-- &new{2007-08-16 (木) ...
- どうもありがとうございました。Rcmdrでは無理とのことです...
- どうもありがとうございました。早速試してみます。 -- [[K...
**RのグラフをPower point上で変更 [#h3a581e7]
>[[sh]] (2007-08-08 (水) 01:40:14)~
~
Rのグラフ(軸ラベルのフォント、プロット記号)をPower poin...
//
- Windowsならば、emf(メタファイル)でCOPY&PASTEすれば可...
- emfファイルで保存するにはどうすればよろしいでしょうか?...
- macosxでemfは使えません。 -- [[okinawa]] &new{2007-08-1...
- macosxにおいて、RのグラフをPower point上で変更する方法...
- Power Point なんか使うのやめたら? -- &new{2007-08-12 ...
- 前コメント者のような極端な意見はともかく,フォントやプ...
- 確かに,Rで図を作成する際は,可能な限りラベルやプロット...
- Macに限らずLinuxでもそうですが、ベクター型のグラフィッ...
- ちなみに,Macなら,PDFで出力して貼り付けるほうがきれい...
- pptにPDFインポートできるとは知らなかった・・・。keynote...
- とどめというか,pdf 関数の引数の family, fonts をよく調...
- epsをtextediterで直接編集という手もありますね。玄人向け...
- ベクター型のグラフィック出力というと、SVG出力で Inks...
- inkscapeですよね。RSvgDeviceパッケージでdevSVG("***")で...
- 結局,質問者は,何をどうしたかったんでしょうねえ(何の...
- RのグラフをPower point上で変更したかったのですが、事前...
**同じ要素を持つ行を選択するには [#k1a186c7]
>[[ななし]] (2007-08-08 (水) 01:14:02)~
~
次のようなデータがあったとき~
> x <- matrix(c("a","b","c","c","e","d","a","c","c","c",...
> x <- data.frame(x)
> x
X1 X2 X3
1 a b c
2 c e d
3 a c c
4 c c c
X1が等しくかつX3が等しい行を選択したい(この場合は1行と3...
> which( x[,1]==x[,1] & x[,3]==x[,3])
[1] 1 2 3 4
や~
> x[,4] <- 1:nrow(x) #自分と同じ行を除けばいけるかも…
> which( x[,4]!=x[,4] & x[,1]==x[,1] & x[,3]==x[,3])
integer(0)
や~
> which(duplicated(x[,1]) & duplicated(x[,3]))
[1] 3 4
では(当然ながら)意図する結果を得られませんでした。~
~
単純にforで1行ずつ回すしか無いのでしょうか?~
//
- x[is.element(x[,1], x[,3]),] でどうでしょう -- [[aa]] &...
- ありがとうございます。ですがこれは偶然一致しただけです...
> x <- matrix(c("a","b","f","c","e","d","a","c","f","c",...
> x <- data.frame(x)
> x
X1 X2 X3
1 a b f
2 c e d
3 a c f
4 c c f
でも同じなのですがx[is.element(x[,1], x[,3]),]ではうまく...
- この場合 is.element(x[,1],x[,3]) は "a","c","a","c" の...
> y <- outer(x[,1], x[,1], FUN="==") * outer(x[,3], x[,3...
> diag(y) <- 0
> y
[,1] [,2] [,3] [,4]
[1,] 0 0 1 0
[2,] 0 0 0 0
[3,] 1 0 0 0
[4,] 0 0 0 0
> which(y == 1, arr.ind=TRUE)
row col
[1,] 3 1 # 1,3 が求める行という意味
[2,] 1 3 # 重複するのが目障りだが
- 重複が目障りというなら diag(y) <- 0 のかわりに,y[upper...
- なるほど外積を使うのですね。条件が三つになったときも外...
- 外積を使うプログラムの計算所要時間はデータフレームの行...
y <- paste(x[,1], x[,3], sep="@") # sep の設定には注意
z <- y %in% names(table(y))[table(y)>1]
x[z,]
一回の処理に要する秒数
行数 外積法 別解
1 4 0.002 0.001
2 8 0.001 0.001
3 16 0.001 0.000
4 32 0.001 0.001
5 64 0.004 0.001
6 128 0.009 0.001
7 256 0.030 0.001
8 512 0.346 0.001
9 1024 1.075 0.002
10 2048 3.931 0.003
11 4096 13.471 0.005
- いったん行を一つの文字列にして比較するわけですね。あり...
- 既に賞味期限切れだが。複数変数を連結して一文字にすると...
> set.seed(1);x <- paste(sample(letters[1:5],3e4,1), sam...
> df <- data.frame(a=x[1:1e4], b=x[(1e4+1):2e4], c=x[(2e...
> y <- paste(df[,1],df[,2],df[,3],sep="`") # 3変数を連結
> y[y %in% setdiff(y, y[duplicated(y)])] <- NA # 一回し...
> y <- as.factor(y) # 因子化
> levels(y) <- 1:nlevels(y) # 水準を変更(NA値は保存され...
> y[1:20]
[1] <NA> <NA> <NA> <NA> <NA> <NA> 1855 1694 <NA> <NA> 5...
[16] <NA> 1599 <NA> 838 <NA>
2148 Levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1...
> which(y==3) # ID番号が3である行番号
[1] 910 1105 7367
> df[which(y==3),] # チェック
a b c
910 aa aa eb
1105 aa aa eb
7367 aa aa eb
> system.time({y <- paste(df[,1],df[,2],df[,3],sep="`");
y[y %in% setdiff(y, y[duplicated(y)])] <-...
y <- as.factor(y); levels(y) <- 1:nlevels...
ユーザ システム 経過
0.020 0.004 0.026
**データハンドリング 縦横変換 [#ad9c6d9e]
>[[蔵正]] (2007-08-07 (火) 09:56:23)~
~
Aのデータを読み込み、Bのようにデータ変換したいのですが、...
~
A--------------------------------------------------------...
PATNO VISIT SUBSCALE QUESTION RESP~
1103 Baseline Total Score 99 0.571428571~
1103 Month 1 Total Score 99 1.214285714~
1103 Month 6 Total Score 99 1.4~
1103 Month 9 Total Score 99 0.547619048~
1104 Baseline Total Score 99 2.048780488~
1104 Month 1 Total Score 99 1.095238095~
1104 Month 3 Total Score 99 1~
1104 Month 6 Total Score 99 0.904761905~
1104 Month 9 Total Score 99 0.880952381~
1105 Baseline Total Score 99 1.571428571~
1105 Month 1 Total Score 99 1.666666667~
1105 Month 3 Total Score 99 0.976190476~
1105 Month 6 Total Score 99 0.928571429~
1105 Month 9 Total Score 99 1.023809524~
:~
~
B--------------------------------------------------------...
PATNO Baseline Month 1 Month 3 Month 6 Month 9~
1103 0.571428571 1.214285714 1.142857143 1.4 0.547619048~
1104 2.048780488 1.095238095 1 0.904761905 0.880952381~
1105 1.571428571 1.666666667 0.976190476 0.928571429 1.02...
:~
//
- [[reshapeでピボットテーブル]]を見よ。その他reshape関数...
- その前にこのデータはかなり不規則ですから、整形しないと...
- 整形するくらいなら,readLines で読んで splitchar や gre...
ただし,データの規則を十分に把握していないとプログラムで...
Baseline と Month 1,Month 3,Month 6,Month 9 で欠測値もあ...
- xtabsではだめでしょうか?たしかrjpwikiのどこかでピポッ...
- なるほどね。テキストエディタなんかを使ってデータを全文...
PATNO VISIT RESP
1103 Baseline 0.571428571
1103 Month1 1.214285714
1103 Month6 1.4
1103 Month9 0.547619048
1104 Baseline 2.048780488
1104 Month1 1.095238095
1104 Month3 1
1104 Month6 0.904761905
1104 Month9 0.880952381
1105 Baseline 1.571428571
1105 Month1 1.666666667
1105 Month3 0.976190476
1105 Month6 0.928571429
1105 Month9 1.023809524
そのあとデータフレーム(df とでも)に読んで,
> ( ans <- xtabs(RESP~PATNO+VISIT, df) )
VISIT
PATNO Baseline Month1 Month3 Month6 Month9
1103 0.5714286 1.2142857 0.0000000 1.4000000 0.5476190
1104 2.0487805 1.0952381 1.0000000 0.9047619 0.8809524
1105 1.5714286 1.6666667 0.9761905 0.9285714 1.0238095
PATNO=1103 の Month3 は実際は欠測値なんだけど 0 が入って...
> ans[ans==0] <- NA
> class(ans) <- "matrix"
> ans
VISIT
PATNO Baseline Month1 Month3 Month6 Month9
1103 0.5714286 1.214286 NA 1.4000000 0.5476190
1104 2.0487805 1.095238 1.0000000 0.9047619 0.8809524
1105 1.5714286 1.666667 0.9761905 0.9285714 1.0238095
attr(,"call")
xtabs(formula = RESP ~ PATNO + VISIT)
- xtabでももちろんできます。私も以前はxtabを使ってました...
**バックスラッシュを置換できますか? [#h598582f]
>[[ぼう]] (2007-08-06 (月) 16:51:00)~
~
winのファイルパス名が入ったテキストをいじる際、バックスラ...
~
> x <- "aa?bb??cc"
> gsub("????", "/", x)
[1] "aa?bb/cc" #本当は"aa/bb??cc"としたい
//
- ¥b は二文字ではなく一文字なんだから,¥とはマッチしな...
- Rでは¥t(Tab)¥n(Return)のような使い方をしますので、上...
- なるほど、次の文字に対してかかってしまい?bなどとなって...
**中央値でソートして箱ヒゲ図を表示するには [#o5779313]
>[[sh]] (2007-08-04 (土) 13:43:20)~
~
グループの中央値でソートしての箱ヒゲ図を表示するにはどう...
boxplot(count ~ spray, data = InsectSprays, col = "light...
boxplot(decrease ~ treatment, data = OrchardSprays, log ...
# 1を2のように表示したい
//
- count ~ spray というモデル式は因子 spray の水準の順に箱...
> attach(InsectSprays)
> spray2 <- reorder(spray, count, median)
> spray
[1] A A A A A A A A A A A A B B B B B B B B B B B B C C...
[39] D D D D D D D D D D E E E E E E E E E E E E F F F F...
Levels: A B C D E F # 最初の水準の並び
> spray2
[1] A A A A A A A A A A A A B B B B B B B B B B B B C C...
[39] D D D D D D D D D D E E E E E E E E E E E E F F F F...
attr(,"scores")
A B C D E F
14.0 16.5 1.5 5.0 3.0 15.0
Levels: C E D A F B # count の中央値によって...
> boxplot(count ~ spray2, col = "lightgray")
# 一行で書けば
> boxplot(count ~ reorder(spray, count, median), data = ...
# 逆順にソートするなら、count を -count にするトリックで
> boxplot(count ~ reorder(spray, -count, median), data =...
- ありがとうございました。大変勉強になりました -- [[sh]] ...
- 新たなオブジェクトを作るのは,ときとして考え物。at 引数...
attach(InsectSprays) # 当然と思って省略したが。。。
boxplot(count ~ spray, data = InsectSprays, col = "light...
- 正しくは(あらかじめ attach(InsectSprays) を実行していな...
boxplot(count ~ spray, data = InsectSprays, col = "light...
at=rank(by(InsectSprays$count, InsectSprays$spra...
- attach(InsectSprays) したなら data 引数は冗長。 -- &n...
**降順のソート関数 [#n740fea3]
>[[*]] (2007-07-31 (火) 09:10:01)~
~
降順のソートの関数はあるのでしょうか?~
探しているんですが昇順しか見当たりません。~
探し不足かもしれませんが、よければ回答お願いします。~
//
- help(sort)と入力しましたか? decreasingでは不十分なケー...
- rev(sort(x)) でも可。 -- &new{2007-07-31 (火) 13:01:27};
- 回答ありがとうございます。実行することが出来、とても助...
**関数の出力を表示させない [#rcd7e0df]
>[[RYUI]] (2007-07-30 (月) 16:37:13)~
~
Rのバージョンは2.5.1です.~
非計量多次元尺度構成法を行っているのですが,そこで次元数P...
library(MASS) # isoMDS関数を使用するため
#類似度データ
ruijiData <- data.frame(
c(0,1,5,3),
c(1,0,2,4),
c(5,2,0,5),
c(3,4,5,0)
)
#次元数とストレスのプロット関数
plot.mds.stress <- function(data) {
stress <- NULL
for(i in 1:c(nrow(data)-1)) {
mds <- invisible(isoMDS(dist(data),k=i))
ps <- c(i,mds$stress)
stress <- rbind(stress, ps)
}
plot(stress,main="ストレスのプロット",xlab="次元数 P",...
}
plot.mds.stress(ruijiData)
を実行すると,図と以下の(isoMDS関数による)出力が得られ...
initial value 13.343941
iter 5 value 0.313496
final value 0.006694
converged
initial value 0.000000
final value 0.000000
converged
initial value 0.000000
final value 0.000000
converged
ここで,上記の出力が表示されないようにしたいのですが,inv...
どのようにしたら,出力を消すことができるのでしょうか? よ...
//
- 出力させないと言うだけなら,for の前に sink("適当なファ...
- 上の出力はおそらく optim() 関数の経過出力で、本当に収束...
> res <- optim(sq, distance, genseq, method="SANN",
+ control = list(maxit=6000, temp=2000, trace=TRUE))
sann objective function values
initial value 29625.000000
iter 1000 value 14815.000000
iter 2000 value 14815.000000
iter 3000 value 14815.000000
iter 4000 value 13541.000000
iter 5000 value 13482.000000
iter 5999 value 13323.000000
final value 13323.000000
sann stopped after 5999 iterations
> sink("all.Rout") # ファイル名は適当
# 以下全てのコンソー...
> res <- optim(sq, distance, genseq, method="SANN",
+ control = list(maxit=6000, temp=2000, trace=TRUE))
# 何も出力されない...
> sink() # sink 関数による...
> res
$par
[1] 1 19 16 8 13 15 2 9 12 14 5 18 4 3 11 7 20 ...
$value
[1] 12919
$counts
function gradient
6000 NA
$convergence
[1] 0
$message
NULL
- 別解:capture.output を使う。簡単にするためにシュガーコ...
plot.mds.stress2 <- function(data) junk <- capture.outpu...
plot.mds.stress2(ruijiData)
- やはり収束の善し悪しを見ないで結果(プロット)だけ得る...
- 収束の善し悪しをプログラムで判定して(上のプログラムで...
- help を良く読みましょう!trace という引数があるでしょう...
mds <- isoMDS(dist(data),k=i, trace=FALSE)
ヘルプに曰く,
Side Effects
If trace is true, the initial stress and the current str...
every 5 iterations.
- 皆様,お返事が遅れ大変申し訳ございません.皆様の回答に...
**3次元グラフで座標値に文字列ラベルをつける方法 [#w0620e41]
>[[niko]] (2007-07-27 (金) 15:41:34)~
~
scatterplot3dを使って3次元グラフを作成しています.~
グラフ中に表示される座標値に文字列ラベルをつける方法を探...
2次元グラフの場合は~
plot(ai.i$points, type="n")
text(ai.i$points, labels=rownames(ai.i$points))
としていたのですが,3次元グラフ(scatterplot3d)での方法を...
どなたかご教示いただけないでしょうか.~
//
- scatterplot3d が返す,xyz.convert function which conve...
d <- structure(c(-4L, 1L, -8L, 4L, -3L, 10L, 15L, 11L, -...
-3L, -11L, -9L, 11L, 4L, 0L, 6L, 14L, -...
0L, -8L, -9L, 12L, -5L, -3L, 16L, 5L, -...
.Dim = c(10L, 3L))
obj <- scatterplot3d(d)
text(obj$xyz.convert(d), labels=LETTERS[1:10], pos=4)
#ref(scatterplot3d-example.png)
- ありがとございます!xyz.convert() を使うんですね.希望...
**barplotの凡例の順序について [#m7b7c860]
>[[K]] (2007-07-24 (火) 16:15:10)~
~
以下のようなスクリプトで、下図のヒストグラムを作りました。~
~
x <- c( 4, 6, 8,10,12,14,16,18,20,22,24,26,28,30,32...
remain<- c( 8, 3, 7, 5, 4, 3, 5, 3, 4, 0, 2, 2, 3, 1, 1...
fell <- c( 5, 2, 5, 3, 3, 2, 4, 2, 3, 0, 1, 1, 2, 1, 1...
dead <- c( 3, 1, 1, 1, 2, 3, 1, 1, 1, 0, 1, 1, 2, 1, 0...
DBH_dist <- function(x, remain, fell, dead, title, xlabe...
par(ps=20)
par(mar=c(5,5,3,3))
dummy <- x * 0
sum <- matrix(rbind(remain, fell, dummy),nrow=3, le...
yrange <- c(-max(dead)-10, max(remain + fell) + 10)
par(new=F)
barplot(-dead, names.arg=x, ylim=yrange, col = "gray"...
par(new=T)
barplot(sum, ylim = yrange, col = c("black","white","...
axes=F, ann=F, legend=c( "残存木","伐採木", "...
}
title = "テスト用のダミーデータ"
xlabel="DBH"; ylabel="直径階別本数分布(本/plot)"
DBH_dist(x, remain, fell, dead, title, xlabel, ylabel)
~
#ref(Kuni_070724.png)~
できれば凡例を上から順に「伐採木」「残存木」「枯損木」の...
legendのヘルプを見てもよく分かりません。どのようにすれば...
//
- どこに問題点が存在するのか分からないのですが,2つめのba...
barplot 関数の legend 引数は,そのグラフに書かれた以外の...
barplot(sum, ylim = yrange, col = c("black","white"), ...
legend("topright", c("伐採木", "残存木", "枯損木" ), f...
- 早速のコメント、ありがとうございます。barplotのlegend引...
**モード/最頻値 [#hcaababb]
>[[とくめい]] (2007-07-23 (月) 17:43:33)~
~
Rはsummary関数でmedianとmeanを出してくれますが、modeは出...
modeを計算する関数はあるのでしょうか?~
//
- google などで検索しましたか? http://cran.r-project.org...
- 離散値データなら例えば次のようにする。 -- &new{2007-07...
> x # 数値データの場合
[1] 1 1 2 5 6 3 5 10 10 10 1 2 3 3 5 5 7...
[26] 8 6 6 9 10 1 3 2 7 5 4 7 5 8 10 4 1...
[51] 1 4 3 5 4 5 9 6 8 10 1 1 2 0 4 5 5...
[76] 7 8 8 10 10 1 1 1 5 5 7 6 9 10 10 1 3...
> (y <- table(x)) # 度数分布表
x
0 1 2 3 4 5 6 7 8 9 10
2 15 5 10 6 16 7 9 11 5 14
> names(y)
[1] "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "...
> names(y)[y == max(y)] # モード
[1] "5"
> as.numeric(names(y)[y == max(y)]) # 数値が欲しければ
[1] 5
> x # 文字列データの場合
[1] "x" "w" "w" "j" "c" "n" "x" "r" "r" "e" "n" "i" "v...
[19] "v" "v" "p" "q" "s" "h" "v" "o" "n" "w" "d" "o" "l...
[37] "j" "f" "l" "m" "o" "g" "n" "e" "x" "o" "d" "j" "s...
[55] "c" "v" "i" "q" "n" "x" "m" "r" "f" "r" "d" "h" "u...
[73] "o" "c" "j" "d" "j" "n" "p" "f" "m" "e" "g" "y" "c...
[91] "v" "g" "s" "n" "b" "s" "h" "x" "z" "y"
> ( y <- table(x) ) # 度数分布表
x
b c d e f g h i j k l m n o p q r s t u v w x y z
1 7 4 4 3 5 6 2 5 3 3 4 8 5 3 2 4 7 1 2 8 3 6 3 1
> names(y)
[1] "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n"...
[20] "u" "v" "w" "x" "y" "z"
> names(y)[y == max(y)] # モード
[1] "n" "v"
- 定義できない(前述の定義では不定になる)場合があること...
**Rmapのインストール [#fc0c3b89]
>[[内田 直樹]] (2007-07-20 (金) 17:25:44)~
~
Rmap_1.1.0zipをインストールしましたがRのversion2.4.1では”...
//
- RTools を使ってソースよりビルドかな?maptools や sp パ...
- ありがとうございました。谷村先生の論文を読んでみます。 ...
- [[初級Q&A アーカイブ(6)]]「Rmapのインストールについ...
**barplotによるヒストグラムの作成方法について [#a0d7cc82]
>[[K]] (2007-07-19 (木) 17:07:04)~
~
Rで以下のようなヒストグラムを作りたいのですが、思うように...
#ref(Kuni_070719.png)~
barplotを使ってやろうとしているのですが、helpをみても見当...
barの幅を0.4にして、間伐前と後のbarの位置をそれぞれ元の位...
±0.25にしてやればできそうな気がするのですが、barplotのパ...
width = rep(0.4, length(x)) と書き加えても何も変わらない...
こんなイレギュラーなグラフは無理かなぁ、と思う一方、Rなら...
どなたかお知恵を貸して下さい。よろしくお願いします。~
以下が現状のスクリプトです。~
# barplot03.R
#直径階別本数分布を、間伐前と間伐後を上向きに並べて、枯...
x <- c(4,6,8,10,12,14,16,18,20,22,24,26,28,30,32) ...
N0 <- c(3,0,1, 0, 2, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) #...
L0 <- c(2,0,3, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1) #広...
N1 <- c(8,0,7, 5, 4, 0, 0, 3, 0, 1, 0, 2, 0, 0, 1) ...
L1 <- c(2,0,4, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1) ...
N2 <- c(6,0,5, 3, 3, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0) ...
L2 <- c(1,0,3, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1) ...
sum0 <- N0+L0; sum1 <- N1+L1; sum2 <- N2+L2
before <- matrix(rbind(N1, L1),2, length(x))
after <- matrix(rbind(N2, L2),2, length(x))
koson <- matrix(rbind(N0, L0),2, length(x))
par(ps=20)
par(mar=c(5,5,3,3))
xlabel="DBH"; ylabel="直径階別本数分布(本/plot)"
title = "テスト"
yrange = c(-max(sum0)-1, max(sum1)+1)
par(new=F)
barplot(before, width = rep(0.5, length(x)), space = NUL...
axis.lty=1, xlab="", ylab="", main="")
par(new=T)
barplot(-koson, names.arg=x, ylim=yrange,
axes = F, xlab=xlabel, ylab=ylabel, main=title)
//
- こんな感じで。 -- [[takahashi]] &new{2007-07-19 (木) 17...
upper<-matrix(rbind(before,after),nrow=2)
yrange<-c(-max(sum0)-1, max(sum1)+1)
xlim<-c(0,7*ncol(upper)/2)
barplot(upper, width = 2, space = c(1,0.5), xlim=xlim ,...
par(new=T)
barplot(-koson, names.arg=x, width=5, space=2/5, xlim=x...
- 期待していたグラフが描けました。どうもありがとうござい...
**データフレームの列の(範囲)指定 [#h856c794]
>[[PC初心者]] (2007-07-19 (木) 04:00:45)~
~
初心者です.(WindowsXP,R-2.5.1)~
以下のサンプルデータ("sitsumon")があるとします.
q1 <- c("F","M","M")
q2_1 <- c(60,70,75)
q2_2 <- c(70,75,70)
q2_3 <- c(90,95,80)
q3 <- c(1,0,0)
q4 <- c(3,4,5)
sitsumon <- data.frame(q1=q1, q2_1=q2_1, q2_2=q2_2, q2_3...
(*ここで,実際には,より多くのデータ数(行数)と質問の...
~
実際に分析する際は,"q2_1"と"q2_2","q2_3","q3"のみを使...
UFO <- sitsumon[,2:5]
とすればよいのですが,実際には,列数が多い(100くらい)ので...
また,抜き出す列数も実際には,もっと多いですので,
UFO <- sitsumon[ ,c("q2_1","q2_2","q2_3","q3")]
というのも避けたいです.~
~
したがって,
UFO <- sitsumon[,"q2_1":"q3"]
のような感じで,2列目("q2_1")〜5列目("q3")を抜き出したい...
~
そこで,皆様にご教授お願いしたいのが,「列名」からそれが...
(できればOS(プラットフォーム)などに依存しないようなやり...
愚直な質問ではございますが,ご教授くだされば幸いです.~
//
- help(subset) してみる(特にその example を見る)。 -- ...
> x <- data.frame(a=1:3, b=1:3, c=1:3)
> colnames(x)
[1] "a" "b" "c"
> which(colnames(x)=="a")
[1] 1
> which(colnames(x)=="b")
[1] 2
- subset(sitsumon,se=q2_1:q3) -- [[takahashi]] &new{2007-...
- 普通はsubsetです。ラベル名の場所を知りたいならcharmatch...
- grep("q4", colnames(sitsumon))とか[[正規表現:http://www...
- お返事が遅れてしまい,申し訳ございません.丁寧に回答し...
**ベイズ−BUGSでのM−Hアルゴリズムの実行 [#a37cbfdb]
>[[azu]] (2007-07-18 (水) 23:31:51)~
~
ベイズでM-Hアルゴリズムを実行したい場合、~
BUGSで動かすことは可能なのでしょうか?~
BUGSの名前から考えるとできなさそうなのですが・・・・~
M-Hアルゴリズムを動かすソフトウェアがあれば、~
教えてください。~
お願いします。~
//
- 何を質問しているのか、訳が分かりません。もっと、具体的...
- 申し訳ないです。私の環境はWinですが、どんな環境をお...
- google でキーワード "Bayes BUGS M-H" で検索してみれば...
- すいぶん遅いレスですが、Metropolis-Hastings法はたしかwi...
**spgrass6のインストールが出来ません_ubuntu7.04 [#i59255c5]
>[[しまだ]] (2007-07-18 (水) 20:40:33)~
~
どなたか教えてください。~
linux超初心者です。grassとRを使いたくて、ubuntu-7.04をセ...
ubuntu:7.04~
grassのバージョン:6.2.1~
Rのバージョン:2.4.1~
R version 2.4.1 (2006-12-18)~
i486-pc-linux-gnu~
ところが、install.packages("spgrass6")を実行すると、~
下記のようなメッセージがでてspgrass6とrgdalをインストール...
spやmaptoolsは、r-base-devを入れたら、無事インストールで...
どなたかアドバイスをいただけないでしょうか。
install.packages("spgrass6") 中で警告がありました:
argument 'lib' is missing: using /usr/local/lib/R/sit...
--- Please select a CRAN mirror for use in this session ...
Loading Tcl/Tk interface ... done
* Installing *source* package 'spgrass6' ...
** R
** inst
** preparing package for lazy loading
Loading required package: sp
Loading required package: maptools
Loading required package: foreign
Error: package 'rgdal' required by 'spgrass6' could not ...
Execution halted
ERROR: lazy loading failed for package 'spgrass6'
** Removing '/usr/local/lib/R/site-library/spgrass6'
The downloaded packages are in
/tmp/RtmpQLX6fo/downloaded_packages
Warning message:
installation of package 'spgrass6' had non-zero exit sta...
in: install.packages ("spgrass6")
//
- spgrass6 をインストールする前に rgdal をインストールせ...
- ありがとうございます。早速やってみましたが、同様のメッ...
install.packages("rgdal_0.5-13.tar.gz","/usr/lib/R/lib",...
WARNING: invalid package 'rgdal_0.5-13.tar.gz'
ERROR: no packages specified
Warning message:
installation of package 'rgdal_0.5-13.tar.gz' had non-ze...
install.packages("rgdal_0.5-13.tar.gz", "/usr/lib/R/li...
- rgdal パッケージは R から GDAL ライブラリにアクセスす...
rgdal: Bindings for the Geospatial Data Abstraction Libr...
Provides bindings to Frank Warmerdam's Geospatial Data A...
(GDAL) (>= 1.3.1) and access to projection/transformatio...
the PROJ.4 library. The GDAL and PROJ.4 libraries are ex...
and, when installing the package from source, must be co...
Both GDAL raster and OGR vector map data can be imported...
data and OGR vector data exported. Use is made of classe...
- ありがとうございました.助言のおかげでバラバラに得てい...
- 確認しました。ありがとうございました。さきほど無事イン...
長年(本当に長かった)の懸案がようやく解決しました。~
Rjpwikiに投稿して本当によかったです。-- [[しまだ]] &new{2...
# apt-get install gdal-bin
# apt-get install libgdal1-dev
# apt-get install proj
# (rgdal_0.5-13.tar.gzをダウンロード)
# sudo R CMD INSTALL rgdal_0.5-13.tar.gz
# ---Rを起動---
# install.packages("spgrass6")
- よかったですね。お役に立てて何よりです(自分で確かめも...
**boxplotの目盛りと外れ値 [#w18c4f5a]
>[[sh]] (2007-07-15 (日) 11:10:40)~
~
boxplot(c(0.1, 1:100, 1000), log="y") で、boxplotのy軸目...
//
- 以下のようになさったらいかが。~
外れ値は、第1四分位数-1.5×四分範囲」より小さいデータと,...
boxplot(c(0.1, 1:100, 1000), log="y", axes=FALSE, frame....
y <- 10^(-1:3) # 適切に設定(データから決定できるように...
axis(2, at=y, label=as.character(y))
- こちらも検索不足。初心者コースの履歴にどちらも質問&回答...
- 軸の目盛りをどうするかということで、axis の使い方に関す...
- 解決しました。ありがとうございました。 -- [[sh]] &new{2...
- 単に、「解決しました」の報告だけではなく、色々付いたコ...
- コメントです。『外れ値は、第1四分位数-1.5×四分範囲」よ...
- 何でも教えてもらえばいいというものではない.箱ヒゲ図の...
- 追加の情報.[[青木繁伸先生のページ:http://aoki2.si.gunm...
- 「縦軸に変数値をとって,第1四分位を下に,第3四分位を上に...
- http://aoki2.si.gunma-u.ac.jp/lecture/Dosuu/box-and-whi...
- > barplotのx軸、y軸の目盛りの値を(関数histのcounts、mi...
online help の value の項を見れば分かるように(あるいは,...
- > 『# 適切に設定(データから決定できるようにするとよい...
まず,何をもって適切とするかを決めないといけないがそれは...
18:14:05};
x <- c(0.1, 1:100, 1000)
boxplot(x, log="y", axes=FALSE, frame.plot=TRUE)
minx <- floor(log10(min(x))) # 与えられた x だと,minx ...
maxx <- ceiling(log10(max(x))) # 与えられた x だと,maxx...
y <- 10^(minx:maxx) # y は,c(0.1, 1, 10, 100, 1000)
axis(2, at=y, label=as.character(y))
- 更に一般的と言うことになると,ちょっと時間が必要だった...
log.ax <- function(x) { # データの範囲を押さえる対数目盛り
minx <- log10(min(x))
maxx <- log10(max(x))
y <- 10^(log10(1:9)+rep(floor(minx):ceiling(maxx), each...
l <- y >= 10^minx & y <= 10^maxx
minl <- min(which(l == TRUE))
if (minl > 1) l[minl-1] <- TRUE
return(y[l])
}
############ 使用例
x <- c(0.31, 2, 5, 40, 100, 1000, 5100)
y <- log.ax(x)
boxplot(x, log="y", axes=FALSE, frame.plot=TRUE)
axis(2, at=y, label=as.character(y))
- ああ・・・私自身も検索不足でしたね。「適切に設定」の具...
**バイナリデータの扱い方について [#tb24241e]
>[[YURI]] (2007-07-14 (土) 14:43:14)~
~
初心者です。バイナリデータの扱い方が良く分りません。~
バイナリファイルから読み込んだデータを4バイト単位にまとめ...
> f <- file('/tmp/a.out', open='rb')
> a <- readBin(f, what='raw', n=40)
> a
[1] 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 02 0...
[26] 82 04 08 34 00 00 00 50 1d 00 00 00 00 00 00
> matrix(a, ncol=4)
> dump("a", file="/tmp/a.R")
> system('cat /tmp/a.R')
"a" <-
c(7f, 45, 4c, 46, 01, 01, 01, 00, 00, 00, 00, 00, 00, 00...
00, 02, 00, 03, 00, 01, 00, 00, 00, 90, 82, 04, 08, 34, ...
00, 50, 1d, 00, 00, 00, 00, 00, 00)
> source('/tmp/a.R')
Error in parse(file, n = -1, NULL, "?") : syntax error o...
> dput(a)
c(7f, 45, 4c, 46, 01, 01, 01, 00, 00, 00, 00, 00, 00, 00...
00, 02, 00, 03, 00, 01, 00, 00, 00, 90, 82, 04, 08, 34, ...
00, 50, 1d, 00, 00, 00, 00, 00, 00)
matrixの結果は何も表示されません。what="raw"で読み込んだ...
matrixは使えない(1要素のサイズが分らないので?)ということ...
また、dumpしたものがsourceで読み込めないのも、こういうも...
結局、"rawデータ"というものは、どのように使えるデータなの...
//
- すみません、整形に失敗しましたが、編集の仕方が分からず...
- どのように使いたいのかわからないが,readBin に対応する...
- もう少し勉強してみます。~私がmatrixで結果が表示されなか...
ありがとうございました。 -- [[YURI]] &new{2007-07-14 (土)...
- 説明不足だったかもしれませんが、readBinを使ったのは、簡...
- 「バージョンが古かった」ってことですか。解決したなら良...
- dump して source で読もうとしたわけですわな。確かに、普...
- すみません、まだ投稿法に慣れず、コメント入力の途中で投...
**散布図を右90度回転 [#j13a4186]
>[[ssk]] (2007-07-13 (金) 07:02:13)~
~
plotで右90度回転させた散布図を書くためにはどうすればよろ...
boxplotやbarplotのようにオプションを指定して簡単にできな...
boxplot(1:10, horizontal=T)
barplot(1:10, horiz=T)
plot(1:10, horiz=T) # Warning messages:
環境:R version 2.5.0 (2007-04-23) i386-apple-darwin8.9.1 ~
参考:「2変量散布図とヒストグラム図」「クラスター図を横向...
//
- 形式的に回転するとy軸(元のx軸)の目盛が降順になってし...
- 「boxplotやbarplotのようにオプションを指定して簡単にで...
存在しないオプションを指定しても,エラーになるだけ~
どういう意図があって,どんな散布図が欲しいのか,上の人の...
plot(y, x) なんてことには考えがおよばなかったと言うことな...
速やかなる返答を求む。 -- &new{2007-07-13 (金) 17:04:43};
- >速やかなる返答を求む。...たかだか8時間程度で,そんな...
- 普段は一週間に一回見るか見ないかのような人でも、自分が...
- こんな感じでしょうか?
x <- 1:10
y <- 20:11
plot(x,y) #普通のplot()
plot(y,x) #xとyが入れ替わっている->これだと、y軸の場所が...
plot(y,x,xaxt="n", xlab="") #y軸の表示をOFFにして
axis(side=3, at=y) #y軸を上に持ってきて
mtext(text="y", outer=F, line=3) #ylabもmtextで追記する
mainの引数もmtext()で自由になります -- &new{2007-07-14 (...
- at=y は,へんじゃない? -- &new{2007-07-14 (土) 12:11:...
- > たかだか8時間程度で,そんなことを言わなくても~
さらに時間が経ちました。答えは必要じゃないということか、...
- アドバイスありがとうございます。返事が遅くなり申し訳ご...
def.par <;- par(no.readonly = TRUE) # save default, for ...
x <- round(rlnorm(100)+1)
y <- round(rlnorm(100)+1)
xhist <- hist(x, breaks=seq(0.5,max(x)+0.5,1), plot=FALSE)
yhist <- hist(y, breaks=seq(0.5,max(x)+0.5,1), plot=FALSE)
nf <- layout(matrix(c(2,0,1,3),2,2,byrow=TRUE), c(3,1), ...
layout.show(nf)
par(mar=c(3,3,1,1))
plot(x, y, log="xy")
par(mar=c(0,3,1,1))
plot(xhist$mids, xhist$counts,type="h",log="x",xaxt="n")
par(mar=c(3,0,1,1))
plot(yhist$mids, yhist$counts,type="h",log="x",xaxt="n")...
par(def.par)#- reset to default
- 以下のようにすればいかが -- &new{2007-07-15 (日) 11:19...
# 最初の plot
plot(x, y, log="xy", ylim=exp(range(log(y))))
# 三番目の plot を以下の2行に
plot(yhist$counts,yhist$mids, type="n",log="y",yaxt="n",...
junk <- sapply(1:length(yhist$counts), function(i) lines...
rep(yhist$mids[i], 2)))
#ref(plot999.png)
- だとしたら、sskさんの検索不足、このページの下に同じ「2...
- 全ての可能性を検索するのも大変だし、下の方のは barplot ...
- 三番目のplotの凡例を描画するにはどうすればよろしいでし...
legend(max(x), max(y), legend="(1)", box.lty=0) # 一番目...
legend(max(xhist$mids), max(xhist$counts), legend="(2)",...
legend(max(yhist$mids), max(yhist$counts), legend="(3)",...
legend(max(yhist$counts), max(yhist$mids), legend="(3)",...
- legend(locator(1), legend="(3)", box.lty=0) # [[関数 lo...
- 各 legend は,plot の直後に書くんですね。legend の第1引...
第一引数に "topright" などと書いて描いてみるのも一法かと。~
そのほかに指定できるのは,"bottomright", "bottom", "botto...
この例もまた,「ヘルプを良く読むべし」ですね。 -- &new{2...
**メタファイルからビットマップファイルへの変更って? [#ka...
>[[チョメスケ]] (2007-07-12 (木) 15:47:06)~
~
最近,Rの勉強を始めたばかりの素人です。質問内容はごく簡単...
~
質問内容:MCMCpackのMCMCregressを実行しました。独立変数が...
いろいろと試行錯誤してみたのですが,できませんでした。も...
よろしくお願いいたします。~
//
- メニューから保存するのではなくて,直接ファイルへ書き出...
- ?bmpしてみればいいと思いますが、例えばこんな感じのを応...
x <- matrix(runif(10),nrow=5)
png()
image(x)
dev.off()
winなら普通にワーキングディレクトリに出ますよ。
あえて、メタファイルの画像ならばirfanviewやVIXなどフリー...
- あなたが言っている「MCMCregressを実行しました」はMCMCpa...
- ご返答いただいた皆様,ありがとうございます。 -- [[チョ...
- 実際に,実行したコードならびに実行環境をご説明させてい...
line<-list(df$y,df$x1,df$x2,df$x3,df$x4)
posterior<-MCMCregress(y~x1+x2+x3+x4,data=df2,verbose=20...
plot(posterior)
raftery.diag(posterior)
summary(posterior)
なお,Rは2.5です。 -- [[チョメスケ]] &new{2007-07-16 (月)...
- 解決いたしました!実はとっても単純な話でございました。...
**barplotの横軸目盛り [#jfc78816]
>[[K]] (2007-07-12 (木) 06:37:14)~
~
barplotについての質問です。
x <- c(4,6,8,10,12,14,16,18,20,22,24,26,28,30,32)
Grp1 <- c(8,0,7, 5, 4, 0, 0, 3, 0, 1, 0, 2, 0, 0, 1)
Grp2 <- c(2,0,4, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1)
Grp3 <- c(3,0,2, 0, 2, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
y <- matrix(rbind(Grp1, Grp2, Grp3),3,length(x))
barplot(y, xlab="DBH")
として、下図を作図しました。このbarplotの横軸にベクトルx...
~
#ref(Kuni_barplot.png)
//
- 回答は axis(1,at=1:length(x)*1.2-0.5, labels=x) ~
ただし、1.2 と 0.5 と言う数値については、!is.matrix(heigh...
#ref(barplot2.png)
- ax<-barplot(y, xlab="DBH");axis(1,ax,x) -- [[takahashi]...
- takahashi様の回答の方がシンプルに同じ結果が得られますね...
- barplotの引数namesを使って、一行で書くこともできます。>...
- 原質問文を読むと確かに「横軸にベクトルxの値を目盛りとし...
- で,ヘルプを隅から隅まで読むと,barplot(y, names.arg=x,...
- 本当だ、helpを読むとnames.argやaxis.ltyのところにちゃん...
**時系列データ処理の高速化の仕方について [#ua9ac45b]
>[[蓮]] (2007-07-11 (水) 22:33:30)~
~
アーカイブの(6)にも似たような内容がありまして恐縮です...
~
データ:2分間隔で測定した1年分のデータ、50箇所分。~
目的 :週毎に平均した1日の変動の値を算出する。~
(0:00の週の平均値、0:02の週の平均値…23:58の週の平均値の7...
#結果収納用データフレームを作成
y <- x[1,] #xは測定値が入っている262800行50列の行列
#52週間分平均データ計算
for (i in 1:52){
for (j in 1:720){
x <- rbind(y,
apply(x[seq((i-1)*720*7+j, 720*7*i, by=720),], 2,...
}
}
これだと、1回計算するのにかなりの時間(6〜7時間)がか...
行列を作ってみようともしたのですが、結局、平均するデータ...
~
作業を効率的に行う方法をご教示いただけませんでしょうか。~
よろしくお願い申し上げます。~
//
- 高速化が目的ならデータフレームやapply関数は使わず、ベク...
- 今あなたは、データを2次元配列で扱っているようだが、デー...
テストデータとして、12ヶ月それぞれにおいて1週間のみ毎時0...
x <- sample(100, 24*7*12*2, replace=TRUE)
dim(x) <- c(24, 7, 12, 2)
system.time(ans <- apply(x, c(1,3,4), mean))
dim(ans)
私のポンコツコンピュータでは以下のようになった
> x <- sample(100, 24*7*12*2, replace=TRUE)
> dim(x) <- c(24, 7, 12, 2)
> system.time(ans <- apply(x, c(1,3,4), mean))
ユーザ システム 経過
0.057 0.002 0.071
> dim(ans)
[1] 24 12 2
あなたのデータ規模だと、どれくらいの時間が掛かるだろうか??~
単に比例計算してみて驚いたね。時間が掛からないのに驚いた...
これなら、実際に計算してみることができる。
> x <- sample(100, 720*7*52*50, replace=TRUE)
> dim(x) <- c(720,7,52,50)
> system.time(ans <- apply(x, c(1,3,4), mean))
ユーザ システム 経過
318.294 6.466 367.592
> dim(ans)
[1] 720 52 50
5分くらいで終わった。たぶん、これであっていると思うんだが...
検算してみよう。
> ans[2,5,12] # 目的とする平均値の入っている要素を取り出し
[1] 59.42857
> mean(x[2,,5,12]) # 該当する7個のデータの平均値
[1] 59.42857
> ans[321,15,17] # 目的とする平均値の入っている要素を取...
[1] 47.14286
> mean(x[321,,15,17]) # 該当する7個のデータの平均値
[1] 47.14286
いいみたいだ。
- ご教示、どうもありがとうございます。~
今まで配列というものを使ったことがなかったので、そのよう...
- apply は使わざるを得ないと思うんだが。。。。 -- &new{2...
- 第1の場所について、第1週すなわち1月1日0時0分~23時58分、...
> a <- matrix(1:24, 12)
> a
[,1] [,2]
[1,] 1 13
[2,] 2 14
[3,] 3 15
[4,] 4 16
[5,] 5 17
[6,] 6 18
[7,] 7 19
[8,] 8 20
[9,] 9 21
[10,] 10 22
[11,] 11 23
[12,] 12 24
> dim(a) <- c(3,4,2) # 3×4×2 配列にする
> a
, , 1
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
, , 2
[,1] [,2] [,3] [,4]
[1,] 13 16 19 22
[2,] 14 17 20 23
[3,] 15 18 21 24
- あなたのコードのまず大きな問題は rbind 関数の多用です。...
> x <- y <- 1:100
> system.time(for (i in 1:9999) y <- rbind(y, x))
ユーザ システム 経過
106.122 38.282 146.565
> z <- matrix(0, 10000, 100)
> system.time(for (i in 1:10000) z[i,] <- x)
ユーザ システム 経過
0.168 0.036 0.205
> str(z)
num [1:10000, 1:100] 1 1 1 1 1 1 1 1 1 1 ...
> str(y)
int [1:10000, 1:100] 1 1 1 1 1 1 1 1 1 1 ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:10000] "y" "x" "x" "x" ...
..$ : NULL
- 先ほど、ようやくもろもろ理解できました。 あまりに早くて...
- 参考まで -- &new{2007-07-13 (金) 01:03:34};
> x <- sample(100, 720*7*52*50, replace=TRUE)
> dim(x) <- c(720,7,52,50)
> system.time(ans <- apply(x, c(1,3,4), mean))
ユーザ システム 経過
101.654 2.796 112.885
> ans2 <- array(0, c(720,52,50))
> system.time(for(i in 1:720) for(j in 1:52) ans2[i,j,] ...
ユーザ システム 経過
3.636 0.624 23.429
> ans2 <- ans2/7 # 総和を平均に変換
> identical(ans, ans2)
[1] TRUE
ついでに気づいた変なこと。
> 720*52*7*50
[1] 13104000
> 262800*50
[1] 13140000
つまり一年は7の倍数(52週)ではないので、次元操作だけではま...
> x <- matrix(1:(262800*50), 262800, 50) # テスト行列
> xx <- array(0, c(52,720,7,50)) # 作業用の配列...
## 適切に配列化(これも少し時間がかかる)
s <- seq(1, length=7, by=720) # 作業用の長さ7の数列...
> for (i in 1:52) for (j in 1:720) xx[i,j,,] <- x[(i-1)*...
> xxx <- array(0, c(52,720,50)) # 最終結果を入れる配...
## 高速な行和関数を使う
> for (i in 1:52) for (j in 1:720) xxx[i,j,] <- colSums(...
> xxx <- xxx/7 # 総和を平均に一括変換(一々割らない)...
- たぶん自動測定器のデータ等だろうから,週平均というのは...
**データフレームからルックアップ [#s24cee76]
>[[でみあん]] (2007-07-11 (水) 10:01:43)~
~
COLOR(red){いつまで経っても,編集されないので,代理で編集...
以下のような二つのデータフレームがある場合、
df1<- data.frame(cbind(c("a","a","a","b","b"),c("abc","d...
df2<- data.frame(cbind(c("a","b"),c(3,1)))
df2の各レコードに対して、それぞれ一列目の値をキーに一定の...
~
最終的には、
X1 X2 X3
1 a 3 ghi
2 b 1 mno
のようなデータフレームを作成したいのです。~
//
- もう少しわかりやすい(?)方法なら。いずれにしても簡潔...
> df1 <- data.frame(x=c("a","a","a","b","b"), y=c("abc",...
> df2 <- data.frame(xx=c("a","b"), yy=c(3,1))
> (temp <- df2$yy[df1$x])
[1] 3 3 3 1 1
> cbind(df1, data.frame(z=temp))
x y z
1 a abc 3
2 a def 3
3 a ghi 3
4 b jkl 1
5 b mno 1
- 「対応する最後の行」など という条件が付いていますねえ -...
**文字列を分解してベクトルに変換する方法 [#k8a503f0]
>[[学生]] (2007-07-10 (火) 18:01:03)~
~
はじめまして。文字列を分割してベクトルに変換したいのです...
str <- "1.1 2.3 3.4"
str.v <- strsplit( "1.1 2.3 3.4", " " )
などを自分では試してみたいのですが、うまくいきません。ど...
よろしくお願いします。~
//
- どのような結果を期待していて,どのような結果しか得られ...
数値ベクトルにしたいというのでしょうか?だったら,str.v <...
str.v <- scan(textConnection(str)) とでも,お好きに -- &...
- 属性を知ることから始めた方が近道と思いますよ -> [[R-T...
- 解説ありがとうございます。やりたいことは、こうして作成...
str.v <-s.numeric(unlist(strsplit( "1.1 2.3 3.4", " " )))
ave(str.v)
[1] 2.266667 2.266667 2.266667
という結果になります。これを
[1] 2.266667
のようになると思うのですが、どうして三つ平均値が表示され...
-- [[学生]] &new{2007-07-11 (水) 15:08:25};
- ?ave -- [[takahashi]] &new{2007-07-11 (水) 15:32:58};
- すみません。aveじゃないですねmean(str.v)ですね。ちゃん...
**平方ユークリッド距離 [#k09a5867]
>[[KO]] (2007-07-10 (火) 16:27:11)~
~
非類似度として平方ユークリッド距離を使用したいのですが、h...
計算可能でしょうか?~
//
- 平方ユークリッド距離は,ユークリッド距離を二乗しただけ...
- x <- matrix(rnorm(100), nrow=5); dist(x)^2; dist(x, met...
- できました。ありがとうございます。 -- [[KO]] &new{2007-...
**アポストロフィーを含む文字列の読み込み [#ccd4080c]
>[[K]] (2007-07-10 (火) 09:42:04)~
~
read.table("ImportFile", header=F, sep=";")のようにファイ...
2094;0;MACY'S;3;5;7
2095;0;MACY'S;3;4;8
read.tableのオプションなどでアポストロフィーを無視するよ...
//
- quote="" -- [[takahashi]] &new{2007-07-10 (火) 09:47:34};
- ? read.table ってやらないんですか? -- &new{2007-07-10...
- すみません。help(read.table)やって読んだつもりだったん...
**Rcmd SHLIBでDLLファイルを作成する際にR2.5だとうまくいか...
>[[たけ]] (2007-07-05 (木) 17:45:38)~
~
仮に解決済みなので恐縮ですが、[[Rの他言語利用の、windows...
D:?test?r>Rcmd SHLIB test.c
windres -I C:/PROGRA~1/R/R-25~1.1/include -i test_res.r...
c:?MinGW?bin?windres.exe: unknown format type `C:/PROGRA...
c:?MinGW?bin?windres.exe: supported formats: rc res coff
make: *** [test_res.o] Error 1
Rの2.3.1では以下のようにうまく行きました。
D:?test?r>Rcmd SHLIB test.c
latex: not found
gcc -shared -s -o test.dll test.def test.o -LC:/PROGRA...
これはバグでしょうか?私の環境はWinXPです。ちなみにtest.c...
//
- 2.5.1 for Winですが、自家製Cプログラムは今まで通りコン...
- Rの2.3.1 ならうまくいくので,バージョンダウンしたと言う...
- はい、ダウンバージョンで解決済みという意味です。分かり...
- こちらの環境(2.5.1 for Win)ではmysum.cがコンパイルで...
**任意の相関係数を持つポアソン乱数列を作成したいのですが ...
>[[taro]] (2007-07-02 (月) 00:51:12)~
~
与えられたlambdaを持つポアソン乱数列に対して、任意の相関...
~
こちらのサイトの「初級Q&A アーカイブ(1) - 層別の相関値...
~
そこで、gendat2() 関数の最初のデータ作成部分を変更して、...
~
質問させていただきたいのは、~
1. あるlambdaを持つポアソン乱数列に対して、任意の相関係数...
2. poissondist() 関数の出力結果で、lambda が設定した値と...
の2点です。~
~
下記に実行結果を記載させていただきましたが、gendat2() 関...
~
また、下記以外にも、いろいろなlambdaを指定してrpois()関数...
~
どうか、上記2点に関しまして、原因と対策をご教授いただけま...
長文失礼しました。
nc <- 1000 # 乱数列の個数
r <- 0.8 # 相関係数
z <- matrix(rpois(2*nc, lambda=1/10), ncol=2)
# 最初に生成したポアソン乱数列の確認
poissondist(hist(z[,1])$counts)
$result
n lambda
1000.000 0.419
$table
x d p e
c-0 0 899 6.577042e-01 6.577042e+02
c-1 1 0 2.755781e-01 2.755781e+02
c-2 2 0 5.773360e-02 5.773360e+01
c-3 3 0 8.063460e-03 8.063460e+00
c-4 4 98 8.446474e-04 8.446474e-01
c-5 5 0 7.078145e-05 7.078145e-02
c-6 6 0 4.942905e-06 4.942905e-03
c-7 7 0 2.958682e-07 2.958682e-04
c-8 8 0 1.549610e-08 1.549610e-05
c-9 9 3 7.528501e-10 7.528501e-07
$result2
chi sq. d.f. P value
2993.188 2.000 0.000
Warning messages:
1: 長いオブジェクトの長さが
短いオブジェクトの長さの倍数になっていません...
2: 長いオブジェクトの長さが
短いオブジェクトの長さの倍数になっていません...
res <- eigen(r2 <- cor(z))
coeff <- solve(r2) %*% (sqrt(matrix(res$values, 2, 2, b...
z <- t((t(z)-apply(z, 2, mean))/sqrt(apply(z, 2, var)*(n...
x <- z %*% chol(matrix(c(1, r, r, 1), ncol=2))
# 変換して生成したポアソン乱数列の確認
poissondist(hist(x[,1])$counts)
$result
n lambda
1000.000 0.817
$table
x d p e
c-0 0 820 4.417549e-01 4.417549e+02
c-1 1 0 3.609138e-01 3.609138e+02
c-2 2 0 1.474333e-01 1.474333e+02
c-3 3 0 4.015100e-02 4.015100e+01
c-4 4 161 8.200841e-03 8.200841e+00
c-5 5 0 1.340017e-03 1.340017e+00
c-6 6 0 1.824657e-04 1.824657e-01
c-7 7 0 2.129635e-05 2.129635e-02
c-8 8 2 2.174890e-06 2.174890e-03
c-9 9 16 1.974317e-07 1.974317e-04
c-10 10 0 1.613017e-08 1.613017e-05
c-11 11 0 1.198032e-09 1.198032e-06
c-12 12 0 8.156599e-11 8.156599e-08
c-13 13 1 5.442424e-12 5.442424e-09
$result2
chi sq. d.f. P value
5244.693 4.000 0.000
Warning messages:
1: 長いオブジェクトの長さが
短いオブジェクトの長さの倍数になっていません...
2: 長いオブジェクトの長さが
短いオブジェクトの長さの倍数になっていません...
下記の関数を参考にさせていただきました。~
## http://cat.zero.ad.jp/~zak52549/R/haebara/chap04.txt
## 任意の相関係数を作成する関数を定義 gendat2(標本サイズ...
gendat2 <- function(nc, r)
{
# 仮のデータ行列を作る。この時点では変数間の相関は近...
z <- matrix(rnorm(2*nc), ncol=2)
# 主成分分析を行い,主成分得点を求める。この時点で変...
res <- eigen(r2 <- cor(z))
coeff <- solve(r2) %*% (sqrt(matrix(res$values, 2, ...
z <- t((t(z)-apply(z, 2, mean))/sqrt(apply(z, 2, var...
# コレスキー分解の結果をもとに,指定された相関係数行...
z %*% chol(matrix(c(1, r, r, 1), ncol=2))
}
## 青木先生のサイト http://aoki2.si.gunma-u.ac.jp/R/pois...
## ポアソン分布への適合度の検定
poissondist <- function(d) ...
{
k <- length(d) ...
n <- sum(d) ...
k1 <- k-1
x <- 0:k1
lambda <- sum(d*x)/sum(d) ...
result <- c("n"=n, "lambda"=lambda)
p <- exp(-lambda)*lambda^x/factorial(x) ...
p[k] <- 1-sum(p[-k]) ...
e <- n*p ...
table <- data.frame(x, d, p, e) ...
rownames(table) <- paste("c-", x, sep="")
while (e[1] < 1) { ...
d[2] <- d[2]+d[1]
e[2] <- e[2]+e[1]
x <- d[-1]
e <- e[-1]
k <- k-1
}
while (e[k] < 1) { ...
d[k-1] <- d[k-1]+d[k]
e[k-1] <- e[k-1]+e[k]
x <- d[-k]
e <- e[-k]
k <- k-1
}
chisq <- sum((x-e)^2/e) ...
k <- k-2 ...
p <- pchisq(chisq, k, lower.tail=FALSE) ...
result2 <- c("chi sq."=chisq, "d.f."=k, "P value...
return(list(result=result, table=table, result2=...
}
//
- gendat2 関数の返す値はそもそも非負整数値になるのですか...
- hist(rpois(n, lambda=bar))$count というのはまずいなあ。...
- hist() 関数で無理矢理整数化していたのですか。最初のコメ...
c0/sqrt((c0+c1)*(c0+c2))
になります。c0 を適当に選べば、少なくとも (0, 1) 区間内の...
- 二変量ポアソン分布の資料を教えていただいて、大変ありが...
終了行:
COLOR(green){SIZE(20){初心者のための R および RjpWiki に...
新規投稿はできません。
----
-[[初級Q&A アーカイブ(7)]] (元記事が 2007-02-01 より 2...
-[[初級Q&A アーカイブ(6)]] (元記事が 2006-08-24 より 2...
-[[初級Q&A アーカイブ(5)]] (元記事が 2005-03-13 より 2...
-[[初級Q&A アーカイブ(4)]] (元記事が 2005-11-09 より 2...
-[[初級Q&A アーカイブ(3)]] (元記事が 2005-05-02 より 2...
-[[初級Q&A アーカイブ(2)]] (元記事が 2004-12-13 より 2...
-[[初級Q&A アーカイブ(1)]] (元記事が 2004-08-03 より 2...
----
#contents
----
**encodingをグローバルに設定したい [#c94cf68e]
>[[akira]] (2007-12-31 (月) 22:26:19)~
~
WinXPとubuntuを並用していています。ubuntuでSHIFT_JISを指...
仮にhogeの中身を~
test\n
テスト\n
test\n
とします。~
~
事前にencodingがわかっていれば、~
> con <- file("hoge.tsv", open="r", encoding="SHIF_JIS")
> x <- readLines(con)
> close(con)
> grep("hoge", x) <- SHIFT_JISを指定しないと In grep("ho...
1 2
としています。~
~
これを、UTF-8とSHIFT_JISを区別せずに使いたいのですが、グ...
~
localeのLC_CTYPEを変更すれば良いと思うのですが...~
> sessionInfo()
R version 2.6.1 (2007-11-26)
i486-pc-linux-gnu
locale:
LC_CTYPE=ja_JP.UTF-8;LC_NUMERIC=C;LC_TIME=ja_JP.UTF-8;LC...
LC_MONETARY=ja_JP.UTF-8;LC_MESSAGES=ja_JP.UTF-8;LC_PAPER...
LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=ja_...
LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets me...
loaded via a namespace (and not attached):
[1] rcompgen_0.1-17
//
- options(encoding="cp932") とかは, いかがでしょか. 尚, S...
- ありがとうございます。[[これ:http://www.okada.jp.org/RW...
**計数データのPoissonGLMによるモデルからカウントされる0の...
>[[idaten]] (2007-12-27 (木) 04:25:41)~
~
0が多い計数データ、solder.balanceというデータをGLMでPoiss...
> P=glm(formula = skips ~ ., family = poisson, data = so...
そのモデルからカウントされる0の数を調べたいときに、色々調...
"the obserbved zero counts are compared to expected numb...
> round( sum( dpois( 0,fitted(P) ) ) )
として得られると書いてありました。~
fitted(P)は推定されたPoisson分布の平均パラメータλですから...
そもそも訳が間違っていて、このコマンドは0を得るのでしょう...
もし情報不足、不適な記述がありましたら、申し訳ございませ...
//
- これは当てはめで得られたポアソン分布パラメータに対する...
- 説明不足で申し訳ありません。確かにfitted(P)は720の推定...
**マッピングのためのgridの設定 [#ved72b09]
>[[R 初心者]] (2007-12-23 (日) 22:13:19)~
~
こんにちは。~
空間統計学のためにRを使っている者ですが、次の質問に対して...
~
アメリカ(127.5W-67.7W, 24N-52N)領域を4x5のgridに区切り、...
すなわち、gridの中央点は070W42N,070W46N,...となります。~
しかし、この地理情報をshape fileとして与えなければ絵を描...
そのようなgrid情報はArcIGSで書かなければならないのでしょ...
もしそうであれば、ArcGISを一度も使ったことがないものに対...
どうかよろしくお願いします。~
//
- [[RjpWiki カテゴリー別見取り図]]からたどれるGIS関係記事...
- shape fileとして与えなくてはいけないという思い込みはど...
- ご回答頂きありがとうございます。確認が遅れ申し訳ござい...
- http://r-spatial.sourceforge.net/gallery/ ここに例題が...
- okinawaさま、ご回答頂きありがとうございます。今から勉強...
- 書き込みに気がつきませんでした。2kmグリッド(32x16)を作...
library(sp)
grd <- GridTopology(cellcentre.offset=c(932668,1350376),...
grd.sp <- as.SpatialPolygons.GridTopology(grd)
grd.d <- data.frame(runif(512), row.names=getSpPPolygons...
grd.spd <- SpatialPolygonsDataFrame(grd.sp,grd.d)
spplot(grd.spd)
#ref(sp-grid-20080112.png)
**正規分布とロジスティック分布の密度関数の重ね描きは? [#...
>[[idaten]] (2007-12-21 (金) 04:26:30)~
~
正規分布N(0,1)とロジスティック分布の密度関数の違いを図...
//
- xlim=c(-3,3) 等でx軸作図範囲を共通にしたら。 -- &new...
- これで
plot(x <- seq(-4, 4, .1), dlogis(x), ylim=c(0, .5), type...
points(x, dnorm(x), type="l", col="red")
どうでしょう -- &new{2007-12-21 (金) 08:25:34};
- 上の2行目は,points ではなく lines を使うと type="l" な...
- 丁寧なお返事ありがとうございます。うまく図が描けました...
- リンク関数をLogitとProbitにしたときのGLMで推定結果(Resi...
**あるベクトルから条件に合致した要素を取り出す際に、条件...
>[[AobaAoba]] (2007-12-20 (木) 18:24:29)~
~
どうぞよろしくお願いします(WinXPで、バージョン2.5.1使用で...
~
下記のxのベクトルのうち、yのベクトルの要素に含まれるもの...
x <- c(2,2,3,6,2,0,6,7,9)
y <- c(2,7)
そこで、単純には以下のようにすれば良いことは初心者ながら...
z <- x[x == 2 | x == 7]
しかし、yがもっと長いベクトルの場合はどうすれば良いのでし...
私が思いつけるのは「forループを使って、yの要素を1つずつ取...
z <- c()
for(i in 1:length(y)){
z <- c(z,x[x == y[i]])
}
もっと簡単な方法があればよろしくお願いいたします。~
//
- x[x%in%y] -- &new{2007-12-20 (木) 18:45:07};
- えっ?それだけで良いんですか?あれ、確かにあってる。ど...
**データフレーム名の自動生成or変換 [#wf2be16a]
>[[うち]] (2007-12-20 (木) 17:13:04)~
~
irisのデータを例にして説明します。~
種名ごとに抽出したデータフレームを自動で生成し,そのデー...
下記のような方法を試してみましたが,当然ながら全くダメで...
種名 <- levels(iris$Species) #種名を抜き出す
種数 <- length(種名) #種数を取得
for(i in (1:種数) ) {
paste(種名[i]) <- subset(iris, Species==種名[i])
}
# 「関数 "paste<-" を見つけることができませんでした」と...
for(i in (1:種数) ) {
df <- subset(iris, Species==種名[i])
names(df) <- paste(種名[i])
}
# これだとデータフレーム名はそのままで,列名が変わって...
//
- 実際に何がやりたいかによるんだろうけど,別に新しくデー...
以下のような使い方があるのはご存じ? -- &new{2007-12-20 ...
a <- split(iris, iris[,5])
lapply(a, summary)
summary(a[["versicolor"]])
- 上と同意見ですが、どうしても別にしたいなら、list()で代...
dat <- lapply(unique(iris$Species), function(x) subset(i...
names(dat) <- unique(iris$Species)
として、
dat[["setosa"]]
とかする -- [[akira]] &new{2007-12-20 (木) 19:08:16};
- こんなことがやりたい? -- &new{2007-12-20 (木) 20:31:2...
> for(i in (1:種数) ) assign(種名[i], subset(iris, Spec...
> ls()
[1] "setosa" "versicolor" "virginica" "種数" ...
- 皆様,ご回答有り難うございます。~
また,私の投稿を読みやすく修正していただき有り難うござい...
assign を教えて下さった方,どうもありがとうございます。as...
しかし,上のお二方のご指摘のようにデータ処理方針を考え直...
例はirisですが,底びき網に入った魚の話です。~
底びき網には魚が溜まる場所が数箇所あり,場所によって種組...
大量の魚が獲れるため,魚の溜まる場所(サンプル区分)ごと...
iris2 <- iris
iris2$区分 <- rep(c("A","B"))
iris2$抽出率 <- ifelse(iris2$区分=="A", 0.8, 0.4 )
そのまま度数分布表を作成したのでは網全体のサイズ組成がゆ...
種ごとサンプル区分ごとにデータフレームを抜き出して度数分...
上のお二方のご提案を参考にして問題解決ができるのか,考え...
R初心者なので,すぐにお返事できないと思いますが,どうかご...
- paste() 関数は文字列及び文字列化した数値を分離文字をは...
> for (i in 1:10) assign( paste("mydata",i,i+5,sep="."),...
> ls()
[1] "mydata.1.6" "mydata.10.15" "mydata.2.7" "mydat...
[6] "mydata.5.10" "mydata.6.11" "mydata.7.12" "mydat...
> mydata.4.9
[1] 4 5 6 7 8 9
- 解決できました。 -- [[うち]] &new{2007-12-21 (金) 20:04...
皆様に頂いたアドバイスを参考にして,下記のようなコードで...
やはり,ご指摘のように大量のデータフレームを作ってから処...
今回は大変勉強になりました。どうも有り難うございました。
# データの生成
iris2 <- iris
iris2$区分 <- as.factor(rep(c("A","B")))
iris2$抽出率 <- ifelse(iris2$区分=="A", 0.8, 0.1 )
種名 <- levels(iris2$Species)
種数 <- length(種名)
区分名 <- levels(iris2$区分)
区分数 <- length(区分名)
階級下限 <- seq(0,10,by=0.5)[-length(seq(0,10,by=0.5))]
# 種別・区分別の度数分布を作製して抽出率補正した結果を1...
for( i in (1:種数)){
for( n in (1:区分数)){
temp <- subset(iris2, Species==種名[i] & 区分==区分名...
ans <- hist(temp$Sepal.Length, br=seq(0,10,by=0.5), r...
補正度数 <- ans$counts/mean(temp$抽出率) # ここで抽...
階級下限 <- cbind(階級下限, 補正度数)
colnames(階級下限)[ncol(階級下限)] <- paste(種名[i],...
補正サイズ組成 <- data.frame(階級下限) # データフレ...
}}
# 補正後の度数分布を種ごとに合体して,全体?のサイズ組...
pdf(file="補正サイズ組成.pdf", width=7, height=3)
for( i in (2: (length(補正サイズ組成))) ){
ifelse( i%%2==0, {
title <- substring(colnames(補正サイズ組成[i]), 1, nch...
barplot(補正サイズ組成[[i]]+補正サイズ組成[[i+1]], nam...
}, next)
}
dev.off()
- こんなふうな図を添付したかったのでしょう。やっているこ...
#ref(iris78975839789.png)
- 私の汚いソースを直す気にならないのは当然ですよね。すっ...
- こんな風になるかな(短くはならないけど,少しは見通しが...
iris2 <- iris
iris2$区分 <- as.factor(rep(c("A","B")))
種名 <- levels(iris2$Species)
種数 <- length(種名)
brks <- seq(0,10,by=0.5)
split.df <- split(iris2,
list(iris2$Species, iris2$区分)) # データファイルを2要...
ans <- sapply(split.df, function(temp) # 集計
hist(temp$Sepal.Length, br=brks, right=FALSE, plot=F...
dim(ans) <- c(20, 3, 2) # 配列に割り付け
ans2 <- ans[,,1]/0.8+ans[,,2]/0.1 # 重み付けの合計
pdf(file="補正サイズ組成.pdf", width=7, height=3) # 出力...
for (i in 1:種数) { # for を使わないとかえって面倒
barplot(ans2[,i],
names.arg=brks[-length(brks)], # x軸の名前
main=paste(種名[i], "補正サイズ組成", sep="")) # 表...
}
dev.off()
- こんなにスッキリするとは!ありがとうございます。split(x...
**ARIMAモデルの次数選択 [#r9952715]
>[[kuri]] (2007-12-20 (木) 02:14:02)~
~
ARIMAモデルの次数選択をAICを選択基準として求めるプログラ...
エラーが出ても無視して、全通りを実行することはできますか?~
//
- ?try -- &new{2007-12-20 (木) 05:17:27};
**微分できない関数のoptim()での最適化 [#k06af95b]
>[[Katoh]] (2007-12-18 (火) 12:37:52)~
~
はじめまして。~
optim()関数について質問です。~
~
こちらの「汎用最適化関数 optim() の使用法」ページによると...
>微分できないような関数では"Nelder-Mead" 法 や"SANN" 法 ...
とありますが、~
実際に準ニュートン法や共役勾配法でも微分できない関数の最...
どのようにして微分値を求めているのでしょうか?それとも求...
~
よろしくお願いします。~
//
- 関数値だけを使うアルゴリズムですから、微分値は仮にそれ...
- >関数値だけを使うアルゴリズム これはNelder-Meadや焼...
- (誤解されました ...)。 optim の準ニュートン法や...
- ありがとうございます。そしてごめんなさい、ちゃんとhelp...
- 「良い最適値」とは厳密に言えば形容矛盾ですね。一方で数...
**barplotで、特定のbarだけをかえたいのですが [#d244eb08]
>[[<ふ>]] (2007-12-15 (土) 22:10:24)~
~
たとえば、~
x <- matrix(seq(10,20,2),6,2)~
のようなデータを用意して、~
~
barplot(t(x))~
とすると、各barは、同じ二色(defaultでは、glay scaleです...
~
これを、(例えば)右から二本目のbarの色を、"lightblue","g...
~
(bar内が分割されてない場合は、そのbarだけ色を変えること...
~
よろしくお願いいたします。~
//
- やはり、そういう引数ないですよね。なら、ちからずくで、...
- xx<-t(x); barplot(xx,col=c("blue","red")); par(new=T); ...
**ftableで作成したクロス集計で合計がゼロの行を消したい [#...
>[[Transalp]] (2007-12-14 (金) 18:32:49)~
~
お世話になります。
~
要素が4つ以上あるデータフレームの値をtableで集計し、ftab...
hoge.txtの中身
所属 名前 月度 出席
営業部 営業太郎 01月 はい
総務部 総務花子 02月 はい
営業部 営業次郎 03月 はい
購買部 購買好男 03月 はい
経理部 経理京子 04月 はい
技術部 技術冴子 04月 はい
営業部 営業太郎 04月 はい
Rコンソールから
df <- read.delim("hoge.txt", header=TRUE)
tbl <- table(df[,1], df[,2], df[,3])
ftbl <- ftable(tbl)
ftable実施後
01月 02月 03月 04月
営業部 営業次郎 0 0 1 0
営業太郎 1 0 0 1
技術冴子 0 0 0 0
経理京子 0 0 0 0
購買好男 0 0 0 0
総務花子 0 0 0 0
技術部 営業次郎 0 0 0 0
営業太郎 0 0 0 0
技術冴子 0 0 0 1
経理京子 0 0 0 0
購買好男 0 0 0 0
総務花子 0 0 0 0
経理部 営業次郎 ・・・以下略
営業部には営業太郎と営業次郎しかいないはずなので、
tbl <- tbl[rowSums(tbl) > 0,, drop=FALSE]
としましたが「次元が違う」とエラーになってしまいます。そ...
~
この「行合計がゼロ」のftableを削除する方法をご教授下さい。~
実行環境はWindowsXP SP2 R-2.6.1 です。~
~
よろしくお願い申し上げます。~
//
- プログラムを書いてしまえばよいのだが。集計次元数が決め...
> df2 <- data.frame( table(df[,1], df[,2], df[,3]))
> df2 <- df2[df2[,ncol(df2)] > 0, ]
> a <- reshape(df2, idvar=c("Var1", "Var2"), timevar="Va...
> a[is.na(a)] <- 0
> colnames(a) <-c(colnames(df)[1:2], dimnames(tbl)[[3]])
> rownames(a) <- 1:nrow(a)
> a
所属 名前 01月 02月 03月 04月
1 営業部 営業太郎 1 0 0 1
2 総務部 総務花子 0 1 0 0
3 営業部 営業次郎 0 0 1 0
4 購買部 購買好男 0 0 1 0
5 技術部 技術冴子 0 0 0 1
6 経理部 経理京子 0 0 0 1
- おなじく、決め打ちなんですが
x <- apply(ftbl,1,sum)>0
y <- cbind(rep(attr(ftbl, "row.vars")[[1]], each=length(...
rep(attr(ftbl, "row.vars")[[2]], times=length...
z <- data.frame(y[x,],ftbl[x,])
colnames(z) <- c("所属","名前",unlist(attr(ftbl,"col.var...
z
所属 名前 01月 02月 03月 04月
1 営業部 営業次郎 0 0 1 0
2 営業部 営業太郎 1 0 0 1
3 技術部 技術冴子 0 0 0 1
4 経理部 経理京子 0 0 0 1
5 購買部 購買好男 0 0 1 0
6 総務部 総務花子 0 1 0 0
とか、
集計だけ欲しいなら、
df$"name" <- apply(df[,1:2],1,paste,collapse="-")
x <- matrix(0, nrow=length(unique(df$"name")), ncol=leng...
dimnames=list(unique(df$"name"),unique(df[,3...
for(i in rownames(x)) for(j in colnames(x)) x[i,colnames...
x
01月 02月 03月 04月
営業部-営業太郎 1 0 0 1
総務部-総務花子 0 1 0 0
営業部-営業次郎 0 0 1 0
購買部-購買好男 0 0 1 0
経理部-経理京子 0 0 0 1
技術部-技術冴子 0 0 0 1
とか -- [[akira]] &new{2007-12-15 (土) 00:40:09};
- ftable は該当因子の全ての組合せに対するクロス集計表を作...
# df に所属変数と名前変数を(全角空白をはさんで)結合した...
# 新しい変数のラベルは「所属及び名前」
> df2 <- transform(df, 所属及び名前=paste(所属,名前, sep...
> df2
所属 名前 月度 出席 所属及び名前
1 営業部 営業太郎 01月 はい 営業部 営業太郎
2 総務部 総務花子 02月 はい 総務部 総務花子
3 営業部 営業次郎 03月 はい 営業部 営業次郎
4 購買部 購買好男 03月 はい 購買部 購買好男
5 経理部 経理京子 04月 はい 経理部 経理京子
6 技術部 技術冴子 04月 はい 技術部 技術冴子
7 営業部 営業太郎 04月 はい 営業部 営業太郎
> ftable(df2, row.vars=5, col.vars=3) # 第5列を行、第3列...
月度 01月 02月 03月 04月
所属及び名前
営業部 営業次郎 0 0 1 0
営業部 営業太郎 1 0 0 1
技術部 技術冴子 0 0 0 1
経理部 経理京子 0 0 0 1
購買部 購買好男 0 0 1 0
総務部 総務花子 0 1 0 0
- それを許すなら,ftable より xtabs が好きだなあ。ftable ...
> df2 <- transform(df, 所属及び名前=paste(所属,名前, sep...
> xtabs(~所属及び名前+月度, df2)
月度
所属及び名前 01月 02月 03月 04月
営業部 営業太郎 1 0 0 1
営業部 営業次郎 0 0 1 0
技術部 技術冴子 0 0 0 1
経理部 経理京子 0 0 0 1
総務部 総務花子 0 1 0 0
購買部 購買好男 0 0 1 0
- なるほど、こういった形でプログラムすればいいんですね。R...
**ケースの選択方法 [#o154f8fa]
>[[mikasa]] (2007-12-13 (木) 20:10:39)~
~
SPSSからの転向に向けて、Rコマンダーを使って勉強中です。~
(1) データセットから特定のデータだけを分析対象にする方法...
(2) データセットを分割して一回の指示で分割したデータセッ...
よろしくお願いします。~
//
- ローマ数字や丸付き数字は使わない方がよいですよ。~
(1) の方は,質問の意図が分かりませんね。新たなデータセッ...
irisデータセットのSpeciesがsetosaのものの統計量を求めたい...
summary(iris[iris[,5]=="setosa",])
iris[,5] の3種ごとに統計量を求めたいなら,以下の一行。
by(iris, iris[,5], summary)
(2) の方は,iris データセットのSpeciesで3分割し,おのおの...
lapply(split(iris, iris[,5]), summary)
まあ,同じことをやるのでも,何通りもあるということで。~
Rコマンダーなど使わない方がよいかも。 -- &new{2007-12-13...
- (1) 「データセットの部分集合を抽出」しかないのでは?~
(2) 難しいかと・・・.ただ,たとえばグラフの場合は「層別...
- SPSSとRではケース選択や分割の考え方(操作)が全くちがう...
**値を文字列として加えるには? [#q9e79f39]
>[[AobaAoba]] (2007-12-11 (火) 17:03:50)~
~
エクセルを卒業してRの世界に足を踏み入れたばかりのものです...
さきほどからこのサイトやらなにやらを3時間ばかり彷徨ってい...
~
やりたいことはもう少し複雑なのですが、以下のことができれ...
~
~
以下のように変数に数字を入れて、それぞれの値を代入したい...
x_1 <- 1~
x_2 <- 2~
x_3 <- 3~
.
.
.
x_10 <- 10~
~
~
そこで次のようなことを書けば良いと思ったんですが、うまく...
~
for (i in 1:10){
x_i <- i
}
~
x_iのところのiの前後に何か入れるんじゃないかと思うのです...
お手数おかけしてしまって本当にすみませんが、どなたかどう...
//
- 何をしたいのかよくわからないのですが、 x[i]<-i じゃだ...
for (i in 1:10){
Command<-paste("x_",i," <- ",i,sep="")
eval(parse(text=Command))
}
- コメントありがとうございます。本当は、xがデータフレーム...
x[[i]]
つまり「i番目の列のベクトル」に新たに名前をつけたいのです...
- どういたしまして。次回からは、実行環境(OS,Rのバージョ...
- 聞きたいことを素直に,詳しく説明して聞けばよいのです。...
データフレームの列の名前を付けたいのですよね。だったら,...
colnames(x) <- paste("x", 1:ncol(x), sep="_")
- colnamesという関数があるのですね!言い訳のつもりではな...
- まあ、forをやってるあたりでR魔人の先生方から「何か来そ...
- コメントありがとうございます。足掻いた上でどうしてもの...
**Bray-Curtis Distanceの関数について [#e2853627]
>[[R.,M.]] (2007-11-22 (木) 10:56:38)~
~
初めて質問させていただきます。~
昨日、クラスター解析の準備としてBray-Curtis Distanceの計...
> dist.BC(x)
以下にエラー dimnames(x) <- dimnames :
'dimnames' はリストでなくてはなりません
そこでdimnames(x)を実行すると”行の番号”と”変数名”が正常に...
> help(package="clusterSim")
Warning message:
In readLines(f) :
'C:/PROGRA~1/R/R-26~1.1RC/library/clusterSim/INDEX' ...
データは観測点における各生物分類群の現存量(対数変換済み...
~
原因と修正方法をお教えていただけませんか。~
//
- dist.BC のソースコードでそういったエラーが出そうな箇所...
- ありがとうございます。> names(x)を実行したところ52個の...
- dimnames として names(x) を使うなら、後者は list(c("ro...
- 14:51:42 さんのアドバイスにより,dist.BC の2行目を
wynik <- matrix(nrow = nr, ncol = nr, dimnames = list...
とすればよいのでは? -- &new{2007-11-22 (木) 17:55:24};
- 毎度のことですが、この手の質問は問題点が再現できる最小...
**T,FとTRUE,FALSE [#k7190c07]
>[[初心者]] (2007-11-16 (金) 20:50:15)~
~
TRUE, FALSEは上書きは不可能なんですが,それらのエイリアス...
~
プログラミングの際にはT,Fは使わずにTRUE,FALSEを使うのが...
//
- そういうことです。Rを使う上での注意事項で,必ず取り上げ...
- 「背景がよくわかっていれば」、TRUEとしてゼロ以外の任意...
- TRUEもFALSEも補完されるので、spell outする癖をつけた方...
**R 言語でベクトル解析 [#m4dfc0d3]
>[[Euler]] (2007-11-16 (金) 20:31:13)~
~
てな、Webぺーじないかな?~
//
- ぐぐりなさい -- &new{2007-11-16 (金) 21:10:08};
- Rのシステム関数はほとんどベクトル化されていますから、そ...
**boxとプロットの間の隙間 [#c569b935]
>[[初心者]] (2007-11-16 (金) 16:16:59)~
~
いつもお世話になっています.
>theta <- seq(0,2*pi,0.01)
>plot(theta,sin(theta),xlim=c(0,2*pi));grid()
このようにプロットした際,boxの大きさはxlimで指定した範囲...
//
- なぜそう言うことをしたいのか。~
以下のようにすれば取りあえずの目的は達成できますか?~
bty="n" で枠を描くのを止めて,rect で自分で枠を描きます。...
theta <- seq(0,2*pi,0.01)
plot(theta,sin(theta),type="l", bty="n")
rect(0, -1, 2*pi, 1)
- ある行列データをimageで,行列データの各列の積分値のデー...
- 少し不正確では?
> theta <- seq(0, 2*pi, 0.01)
> oldpar <- par(xaxs="i")
> plot(theta, sin(theta), xlim=c(0, 2*pi), type="l")
> par(oldpar)
xaxsはpar()の引数です. -- &new{2007-12-12 (水) 10:46:53};
- > xaxsはpar()の引数です.~
その通りではあるが,par() の引数の多くは plot の引数とし...
plot のオンラインヘルプを見ればわかりますが,plot が ... ...
... Arguments to be passed to methods, such as graphical...
実際に,
> plot(theta, sin(theta), xlim=c(0, 2*pi), type="l", xax...
> plot(theta, sin(theta), xlim=c(0, 2*pi), type="l")
を試してみれば,違いがわかるでしょう。 -- &new{2007-12-1...
- なるほど.こんな便利な方法があったのですね.ありがとう...
**インストーラなしのWin版Rのインストール [#t2ff32bd]
>[[内部統制]] (2007-11-14 (水) 10:30:43)~
~
Win版Rをインストーラを使わないでインストール方法はある...
//
- ソースから自分でコンパイルすれば?(なんでそいういうや...
- どこぞのWinの[Program Files]の中の[R]フォルダを丸ごとコ...
- Rjpwikiの過去記事にUSBでWin版Rを持ち歩く方法があります...
**2次輸送問題 [#y5ace7e0]
>[[OR mania]] (2007-11-13 (火) 11:14:42)~
~
Rには2次輸送問題(QTP:Quadratic Transportation Problem...
~
こちらの「数理計画」のページを見ましたが見当たりません...
//
- [[必要な関数を探す]]は見なかったんですか? -- &new{200...
**barplotのlegendについて [#xe93c366]
>[[K]] (2007-11-12 (月) 14:05:32)~
~
barplotのlegendについて教えて下さい。~
グラフをプレゼン用に使おうと、par(ps=22)として文字サイズ...
par(ps=22)
par(mar=c(5,5,3,3))
barplot(sum, names.arg=breaks2,
col = c("darkred", "darkgreen", "lightblue", "pi...
xlab="胸高直径階(cm)", ylab="立木本数(本/ha)"...
legend("topright", c("アカマツ", "ヒノキ", "スギ", "その...
fill=c("darkred", "darkgreen", "lightblue", "pink...
そして、以下のようなヒストグラムを得ました。~
#ref(histgram_k2.png)~
この凡例中の文字列の前の四角のサイズを大きくしたいと思い...
//
- 制御する引数がないので,legend 関数の中の,rect2 の呼び...
- legend 関数の lty, lwd パラメータを適当に指定してみたら...
- なるほど,fill の代わりに col を使い(fill で指定してい...
- 早速のコメント、ありがとうございます。
頂いたアドバイスを参考に、
legend("topright", c("アカマツ", "ヒノキ", "スギ", "その...
col=c("darkred", "darkgreen", "lightblue", "pink...
lwd=15, y.intersp=2)
とすることで、以下のような凡例を得る事が出来ました。
#ref(legend_K1.png)
四角から角の丸い太線になったのは、fillの代わりにcolを用い...
ともあれ、お陰様でPowerPointでのプレゼンなどには十分使え...
- おおっ!アドバイス通りにやってみたら、見事に欲しかった...
**Mac OS X 10.5にRのインストールができません [#c5571c65]
>[[suzuk]] (2007-11-11 (日) 11:37:40)~
~
(Rがインストールされていない)Mac OS X 10.5 (Leopard)にR...
「このソフトウェアのより新しいバージョンがシステムにイン...
R-2.6.0、R-2.5.0、R-2.4.1の何れのバージョンにおいても同様...
//
- CRANのR for Mac OS Xというページhttp://cran.r-project.o...
- R-2.6-branch-43408.dmg (latest version)はLeopardに正常...
**キュー、スタックの実現 [#j2f44880]
>[[kbi]] (2007-11-11 (日) 09:38:12)~
~
google等の検索エンジンとサイト内検索を試したのですが~
有効な情報が見つからなかったので質問させてください。~
Rにおいて、基本的なデータ型としてキューやスタックは~
用意されていないのでしょうか。~
待ち行列などのモデルをシミュレーションしてみたいと思って...
調べるのに有効なキーワードだけでも教えていただけると幸い...
//
- R本体にはキューやスタックという機能はありません。貢献パ...
> Stack <- function(){ # Rには既に stack という名前の関...
+ it <- list()
+ res <- list(
+ push=function(x){
+ it[[length(it)+1]] <<- x
+ },
+ pop=function(){
+ val <- it[[length(it)]]
+ it <<- it[-length(it)]
+ return(val)
+ },
+ value=function(){
+ return(it)
+ }
+ )
+ class(res) <- "stack"
+ res
+}
> print.stack <- function(x,...) print(x$value())
> push <- function(stack,obj) stack$push(obj)
> pop <- function(stack) stack$pop()
> bz <- Stack()
> bz
list(0)
> push(bz, 1:10)
> bz
[[1]]
[1] 1 2 3 4 5 6 7 8 9 10
> push(bz, rnorm(10))
> bz
[[1]]
[1] 1 2 3 4 5 6 7 8 9 10
[[2]]
[1] 1.1519118 0.9921604 -0.4295131 1.2383041 -0.2793...
[7] 0.5607461 -0.4527840 -0.8320433 -1.1665705
> pop(bz)
[1] 1.1519118 0.9921604 -0.4295131 1.2383041 -0.2793...
[7] 0.5607461 -0.4527840 -0.8320433 -1.1665705
> bz
[[1]]
[1] 1 2 3 4 5 6 7 8 9 10
> pop(bz)
[1] 1 2 3 4 5 6 7 8 9 10
> bz
list()
- なるほど、これは使いやすそうです。自力でリストから構造...
**パッケージのインストールができない [#gef68821]
>[[tomo]] (2007-11-09 (金) 20:27:05)~
~
Rの初心者です。 R2.4.1を使用しています。~
パッケージのインストールができません。ダウンロードはして...
> utils:::menuInstallPkgs()
URL 'http://prs.ism.ac.jp/bioc/1.9/bioc/bin/windows/cont...
Content type 'application/zip' length 436881 bytes
開かれた URL
downloaded 426Kb
~
以下にエラーzip.unpack(pkg, tmpDir) :
ファイル 'C:/Program Files/R/R-2.4.1/library/file57d366...
違うパソコンからだと,同じ操作でインストールできました。...
よろしくお願いいたします。~
//
- まずは,最新バージョンにバージョンアップしましょう。う...
- Vista の場合は,R を起動する際に「右クリック」→「管理者...
- 皆さま ありがとうございました。違うパソコン=XP できな...
**ウィンドウサイズの拡大 [#o7bb94a9]
>[[クラスタ]] (2007-11-07 (水) 20:30:56)~
~
hclust()を使い樹形図を作成しました。~
しかし、データ数が600個あり文字が重なって読めません。~
ウィンドウサイズを拡大しようにも画面サイズより広がりませ...
なんとか読めるように文字が重ならない大きさまで拡大したい...
ご教示お願いします。~
- 初級Q&A アーカイブ(6)の『クラスター分析におけるフォ...
- 読んでませんでした。同じ問題を抱えた人の質問でしたが、...
- 600個のデータを一度に見よう(一部分だけ見てもそれはそれ...
- こんな表示方法もあるんですね、ウィンドウの拡張は諦めて...
- これと同じ質問にここ数週間内に答えたんだけど,元記事が...
それはさておき,画像を画面一杯に限って重ならないようにフ...
画面に描かれたものを見るだけでよいという局面は少ないわけ...
いったん画像ファイルに保存すれば,それをそのまま印刷する...
つまり,横幅(縦幅も)を十分大きく取って描画し,それをフ...
以下を実行して,できるファイルをご覧下さいませ。 -- &new...
x <- matrix(rnorm(1200),600)
pdf("cluster.pdf", height=10, width=150)
plot(hclust(dist(x)), hang=-1)
dev.off()
- おお、できました。これを求めていたんです。お二方ありが...
**関数 cut() の引数 right について [#j75d0934]
>[[実験万]] (2007-11-01 (木) 14:40:22)~
~
ある数値データベクトルの度数分布を求めるときに、階級の端...
~
まず、0.1 から 9.9 まで、0.1 刻み、99 個の数値からなるデ...
~
実験 (1)~
階級の端点に一致する数値がある場合、その数値を「下側」の...
命令:
x <- seq( 0.1, 9.9, 0.1 )
table( cut( x, breaks=seq(0,10,1), right=TRUE ) )
結果:
(0,1] (1,2] (2,3] (3,4] (4,5] (5,6] (6,7] (7,8] ...
10 10 9 11 10 10 10 10 ...
~
実験 (2)~
階級の端点に一致する数値がある場合、その数値を「上側」の...
命令:
x <- seq( 0.1, 9.9, 0.1 )
table( cut( x, breaks=seq(0,10,1), right=FALSE ) )
結果:
[0,1) [1,2) [2,3) [3,4) [4,5) [5,6) [6,7) [7,8) ...
9 10 10 10 10 10 10 10 ...
~
それぞれ、最初と最後の階級の度数をみると、期待したとおり...
~
しかし、ひとつ問題が見つかりました。それは、実験 (1) の結...
//
- 計算機で扱う実数は,「近似値に過ぎない」からです。近似...
あなたの例でも,全体を10倍して小数を含まないデータにして...
要するに,正確な値が欲しければ整数を扱うようにするのがよ...
ちなみに,日本では「○○以上□□未満」ということがあるので,...
> x <- seq( 1, 99, 1 )
> table( cut( x, breaks=seq(0,100,10), right=TRUE ) )
(0,10] (10,20] (20,30] (30,40] (40,50] (50,60] (...
10 10 10 10 10 10 ...
(80,90] (90,100]
10 9
- ありがとうございます。勉強になります。これからは、必要...
**0.999999999 [#u6a17a42]
>[[ビットマップ]] (2007-11-01 (木) 12:18:08)~
~
R version 2.5.1です。~
set.seed(100)
vo <- round( rnorm(40,100,5), 1)
~
table(diff(sort(vo)))
とすると~
~
0 0.0999999999999943 0.100000000000009 ...
4 8 5 ...
0.299999999999997 0.300000000000011 0.399999999999991 ...
5 1 1 ...
0.5 0.599999999999994 0.700000000000003 ...
7 1 1 ...
1.20000000000000 2.800 3.5
1 1 1
~
という結果が得られました。~
0.0999999999999943 と 0.100000000000009 はどちらも 0.1 ...
//
- 必要な段階でroundすること。良いか悪いかはともかく,tabl...
この質問も,この上の質問と解答に関連しています。 -- &new...
- そうですね.round でゴリおししてみます.ただ,何桁必要...
**グラフの軸を太くしたい [#b2f8fb3f]
>[[surg]] (2007-10-28 (日) 07:40:31)~
~
Rで作成したグラフを、Microsoft Wordの書類に挿入しようと思...
png("test.png", width=324*4, height=324*4)
par(cex=4, lwd=4)
hist(rnorm(1000))
dev.off()
上記のようにしてWord上で15%程度に縮小して印刷すると,グラ...
help(par) は読んだのですが,それらしい項目は見当たりませ...
//
- lwd -- [[okinawa]] &new{2007-10-28 (日) 10:08:41};
- par じゃなくて hist の引数でね -- &new{2007-10-28 (日)...
- ありがとうございます.ご指摘のようにlwdをparではなくhis...
- histはこれで大丈夫だったのですが,plotではだめでした.
png("test.png", width=324*4, height=324*4)
par(cex=4, lwd=4)
plot(rnorm(1000), rnorm(1000), lwd=4)
dev.off()
こうするとグラフのほとんどの構成要素は太くなるのですが,...
help(plot), help(plot.default)にはそれらしい記述は見当た...
- 実際に呼び出される plot.default に問題があるように思い...
取りあえずは,plot.default にパッチを入れて使うとか -- &...
plot.default <- function (x, y = NULL, type = "p", xlim ...
log = "", main = NULL, sub = NULL, xlab = NULL, ylab...
ann = par("ann"), axes = TRUE, frame.plot = axes, pa...
panel.last = NULL, asp = NA, ...)
{
# 実際は以下のようになっているのだが,これでは lwd は Ax...
# localAxis <- function(..., col, bg, pch, cex, lty, ...
# 次に示すように lwd を取ると,期待通りの動きをする
# col とか bg, pch, cex ,lty も同じになると思うが,
# この関数を作った人は,plot の軸を描くときに col, bg, p...
# 弄るべきではないと思ったのかもね
localAxis <- function(...) Axis(...)
- ありがとうございます.plot.defaultに手を入れることで,...
仰るとおり,作者は他のパラメータと同じく,Axis()のlwdもpa...
**PLSとCCAは同等か [#gbb2130e]
>[[yishii]] (2007-10-24 (水) 23:04:38)~
~
初心者なので教えていただきたいことがあり、投稿させていた...
//
- 統計プロパーの質問はこのWikiでは歓迎されません。 -- &n...
**R commanderでの生存時間解析(cmprsk)における多変量解析(c...
>[[takeiteasy]] (2007-10-24 (水) 00:22:52)~
~
先日、Rcommanderでのcmprskを教えていただいたものです。お...
Rcommanderハンドブックの6章のCox回帰を参考にやってみまし...
申し訳ありません。~
//
- Rでも動かないのでしょうか?何を試して、何がダメだったか...
[[takeiteasy]]さんはコマンド入力でRを使用されているようで...
- crr のヘルプを見ますと、crr のモデルの指定の仕方は「Cox...
↓で定義しました関数 Mycuminc() を改造してみてはいかがでし...
- ありがとうございます。Mycuminc()を改造してやってみます...
**e1071パッケージのsvmメソッドの損失関数について [#c6ae6f...
>[[codedir]] (2007-10-19 (金) 12:51:21)~
~
e1071パッケージのsvmメソッドの回帰における損失関数はε-イ...
損失関数を定義しているプログラムを探したんですが、見当が...
よろしくお願いします
e1071:::svm.default
e1071:::svm.formula
//
- svmtrain って,Cで書かれたプログラムを呼んでるんでは?~
そのソースプログラムを読めばよいかと。 -- &new{2007-10-1...
cret <- .C("svmtrain", as.double(if (sparse) x@ra else t...
- ありがとうございます!google code searchで検索したら、e...
通常このソースはe1071のどこに保存されているのでしょうか?...
- なんだかなあ。? svm してでてくる中で,参考文献として出...
- 近くにある、「Rに関して包括的な情報をまとめたサイト」 =...
- お返事が大変おそくなって申し訳ありません。ありがとうご...
- すみません、追加の質問になるんですがお願いします。e1071...
- 自己解決しました!svm.dllをビルドする時にsvm.hとsvm.cpp...
**Rcommanderでcmprskはできますか? [#a413c361]
>[[takeiteasy]] (2007-10-17 (水) 23:46:49)~
~
医学データの解析に使用したいのですが、~
いままで、JMPなどで統計解析していましたが、~
cmprskはJMPなどでは解析できません。~
コマンド入力などは素人でなかなか難しいです。~
Rcommanderなどを用いてcmprskは解析できるでしょうか?~
//
- R には cmprsk というパッケージがあるものの、Rcommander ...
- R commander では cmprsk を含め,生存時間解析の機能はサ...
(R Commander に cmprsk の機能を実装すれば解析できます^...
- ありがとうございます。コマンド入力でがんばってみます。 ...
- 言いだしっぺの法則….パッケージ Rcmdr の etc フォルダに...
### MyProgram.R の中身
Mycuminc <- function(){
initializeDialog(title="cumulative incidence function")
timeBox <- variableListBox(top, Numeric(), title="時...
eventBox <- variableListBox(top, Numeric(), title="イ...
groupBox <- variableListBox(top, Factors(), title="群...
Var1 <- tclVar("0")
Var1Entry <- tkentry(top, width="6", textvariable=Var1)
onOK <- function(){
XXX <- getSelection(timeBox)
YYY <- getSelection(eventBox)
ZZZ <- as.factor(getSelection(groupBox))
AAA <- as.numeric(tclvalue(Var1))
if (length(XXX) != 1 || length(YYY) != 1 || length(Z...
errorCondition(recall=Mycuminc, message="変数を1つ...
return()
}
closeDialog()
library(cmprsk)
if (is.na(AAA)) {
command <- paste("cuminc(",
ActiveDataSet(), "$", XXX, ", ",
ActiveDataSet(), "$", YYY, ", ",
ActiveDataSet(), "$", ZZZ, ", ",
"cencode=0)", sep="")
}
else {
command <- paste("cuminc(",
ActiveDataSet(), "$", XXX, ", ",
ActiveDataSet(), "$", YYY, ", ",
ActiveDataSet(), "$", ZZZ, ", ",
"cencode=", AAA, ")", sep="")
}
doItAndPrint(command)
tkfocus(CommanderWindow())
}
OKCancelHelp(helpSubject="cuminc")
tkgrid(getFrame(timeBox), getFrame(eventBox), getFrame...
tkgrid(tklabel(top, text=gettextRcmdr("打ち切り")), Va...
tkgrid(buttonsFrame, columnspan=2, sticky="w")
tkgrid.configure(Var1Entry, sticky="w")
dialogSuffix(rows=2, columns=1)
}
Mycifplot <- function(){
initializeDialog(title="cumulative incidence function")
timeBox <- variableListBox(top, Numeric(), title="時...
eventBox <- variableListBox(top, Numeric(), title="イ...
groupBox <- variableListBox(top, Factors(), title="群...
Var1 <- tclVar("0")
Var1Entry <- tkentry(top, width="6", textvariable=Var1)
onOK <- function(){
XXX <- getSelection(timeBox)
YYY <- getSelection(eventBox)
ZZZ <- as.factor(getSelection(groupBox))
AAA <- as.numeric(tclvalue(Var1))
if (length(XXX) != 1 || length(YYY) != 1 || length(Z...
errorCondition(recall=Mycuminc, message="変数を1つ...
return()
}
closeDialog()
library(cmprsk)
if (is.na(AAA)) {
command <- paste("tmp <- cuminc(",
ActiveDataSet(), "$", XXX, ", ",
ActiveDataSet(), "$", YYY, ", ",
ActiveDataSet(), "$", ZZZ, ", ",
"cencode=0); plot(tmp)", sep="")
}
else {
command <- paste("tmp <- cuminc(",
ActiveDataSet(), "$", XXX, ", ",
ActiveDataSet(), "$", YYY, ", ",
ActiveDataSet(), "$", ZZZ, ", ",
"cencode=", AAA, "); plot(tmp)", sep="")
}
doItAndPrint(command)
tkfocus(CommanderWindow())
}
OKCancelHelp(helpSubject="cuminc")
tkgrid(getFrame(timeBox), getFrame(eventBox), getFrame...
tkgrid(tklabel(top, text=gettextRcmdr("打ち切り")), Va...
tkgrid(buttonsFrame, columnspan=2, sticky="w")
tkgrid.configure(Var1Entry, sticky="w")
dialogSuffix(rows=2, columns=1)
}
MySetup <- function(){
initializeDialog(title="cmprsk のセットアップ")
onOK <- function(){
closeDialog()
install.packages('cmprsk')
}
OKCancelHelp(helpSubject="install.packages")
tkgrid(buttonsFrame, columnspan=1, sticky="w")
dialogSuffix(rows=1, columns=1)
}
次に、同フォルダにある Rcmdr-menus.txt の一番最後に以下を...
### Rcmdr-menus.txt の一番最後に追記
### メニュー追加・ここから
menu MyMenu topMenu "" "" ...
item topMenu cascade "メニュー" MyMe...
item MyMenu command "CIF(計算)" Mycu...
item MyMenu command "CIF(プロット)" Myci...
item MyMenu command "cmprsk のセットアップ" MySe...
### メニュー追加・ここまで
まずは R commander を起動し,「メニュー」→「cmprsk のセッ...
サンプルデータを R Commander でアクティブにしてから,「メ...
### サンプルデータ
x <- data.frame(time=c(1:10,1:10), censor=floor(3*runif(...
R Commander への機能追加については [[説明スライドの最後の...
x <- data.frame(time=c(1:10,1:10), censor=floor(3*runif(...
library(cmprsk)
( tmp <- cuminc(x$time, x$censor, x$group) )
plot(tmp)
#ref(cif.gif)
です.-- [[舟尾]] &new{2007-10-18 (木) 02:02:03};
- 舟尾先生、詳細な説明ありがとうございます。やってみたい...
**音声データをスペクトル解析したい [#s1214187]
>[[trantila]] (2007-10-16 (火) 18:28:30)~
~
音声データ(WAV形式です。)をスペクトル解析したいのですが...
ここのサイトのスペクトル解析のところは見たのですがいまひ...
Rでは音声データを解析対象として扱えないのでしょうか?~
もし、そうであれば音声データを時系列データに変換する方法...
~
よろしくお願いします。~
//
- http://cran.r-project.org/src/contrib/Descriptions/soun...
- 単語検索で"WAV"ってするとそれらしいものが出てきますが.....
**RESTFul な Web Service で Rを利用 [#g5fe721c]
>[[tantan]] (2007-10-15 (月) 11:48:37)~
~
RWeb なような対話型の web service ではなくて、CGI の Get ...
//
- おれもほしい!(言いだしっぺの法則は無しにして) -- [[o...
- RApache+XMLでなんとかなるんでは? -- [[なかま]] &new{20...
- RApache は Windows 用はないようですね。 -- &new{2007-1...
- これは? http://data.vanderbilt.edu/~koyamat/brew/magi...
**RからWSDLを読み込みたい [#w3d10bc8]
>[[akira]] (2007-10-14 (日) 17:17:22)~
~
なかまさんの[[RからのBBDJアクセスメモ:http://prs.ism.ac.j...
> library("SSOAP")
要求されたパッケージ XML をロード中です
要求されたパッケージ RCurl をロード中です
> ddbj <- processWSDL ("http://xml.nig.ac.jp/wsdl/GetEnt...
> iface <- genSOAPClientInterface(def=ddbj)
以下にエラー parse(text = txt) : 予想外の 入力 です ...
" server = .defaultServer, .convert = .operation@...
nameSpaces = �"
とエラーになってしまいました。~
関数を読み込むと、
> processWSDL
function (fileName = "KEGG.wsdl", handlers = WSDLParseHa...
library(XML)
(中略)
types = processWSDLTypes(doc[["types"]], doc)
(以下、省略)
と、"processWSDLTypes"を見つけられず、トレースできません...
で、exampleを確認すると、
> tmp = processWSDL(system.file("examples", "KEGG.wsdl"...
Warning messages:
1: In function (node) :
skipping import node with no schemaLocation attribute
2: In function (node) :
skipping import node with no schemaLocation attribute
となり、KEGG.wsdlの読み込みでエラーになったようで、
> tmp = processWSDL("http://soap.genome.jp/KEGG.wsdl")
Warning messages:
1: In function (node) :
skipping import node with no schemaLocation attribute
2: In function (node) :
skipping import node with no schemaLocation attribute
と、大元にアクセスしてもだめでした。~
一つのスレで2つの疑問が生じていますが、
ddbj <- processWSDL ("http://xml.nig.ac.jp/wsdl/GetEntry...
tmp = processWSDL("http://soap.genome.jp/KEGG.wsdl")
のエラーを回避したいです。
> sessionInfo()
R version 2.6.0 (2007-10-03)
i486-pc-linux-gnu
locale: LC_CTYPE=ja_JP.UTF-8;LC_NUMERIC=C;LC_TIME=ja_JP....
LC_COLLATE=ja_JP.UTF-8;LC_MONETARY=ja_JP.UTF-8;LC_MESSAG...
LC_PAPER=ja_JP.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE...
LC_MEASUREMENT=ja_JP.UTF-8;LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets me...
other attached packages:
[1] SSOAP_0.4-6 RCurl_0.8-3 XML_1.93-2
loaded via a namespace (and not attached):
[1] rcompgen_0.1-15
です。
//
- SSOAPの[[0.4-3:http://www.omegahat.org/SSOAP/SSOAP_0.4-...
- ありがとうございます。DDBJにアクセスできました!~
ただ、SSOAPの[[0.4-3:http://www.omegahat.org/SSOAP/SSOAP_...
RSiteSearch("processWSDL")すると、[["http://www.ncbi.nlm....
> ncbi <- processWSDL("http://www.ncbi.nlm.nih.gov/entre...
以下にエラー ans[[ns]] <<- o : 一つ未満の要素を選択し...
追加情報: 50 件以上の警告がありました (警告を見るには...
> warnings()
警告メッセージ:
1: In FUN(X[[2L]], ...) :
Failed to handle node HasLinkOut of type attribute&sim...
2: In FUN(X[[2L]], ...) :
Failed to handle node HasNeighbor of type attribute&si...
3: In FUN(X[[1L]], ...) :
(以下、略)
うーん、DDBJだけじゃなく、KEGG APIもeUtilsも使いたかった...
- 最新のSSOAP_0.4-6でも,options(useFancyQuotes=FALSE)で`d...
- ありがとうございます。今はWinXPで使っています。SSOAP_0....
**グラフのフォントサイズを設定したい [#p59e5f85]
>[[田中]] (2007-10-14 (日) 15:41:02)~
~
R2.6.0,Windows XPを使っております。~
barplot()を使って棒グラフを描き,PowerPointのスライドに貼...
PowerPointに貼り付けてみると,文字が少し小さく,フロアか...
x軸,y軸のラベルや図のタイトルのフォントサイズを変更する...
どなたか対処法をご存知の方がいらっしゃいましたら,お返事...
//
- この手の質問は過去の質問履歴から検索するか、グラフィッ...
- akira様,早速のコメントありがとうございました。"フォン...
**線分の描き方について [#q8f5e24d]
>[[真矢]] (2007-10-11 (木) 18:27:55)~
~
座標(X,Y)を始点とした傾きm、長さLの線分の書き方を教え...
R2.4.1を使っています。~
//
- ?segments -- &new{2007-10-11 (木) 18:50:55};
- この手の質問は検索すれば一発で出てきますよ。あと、[[リ...
**ESSからRcmdrを日本語で呼び出したい [#f85df36b]
>[[<ふ>]] (2007-10-02 (火) 21:57:19)~
~
(連続で失礼します。)~
~
essをMeadowで使ってます。~
(WindowsXP、R2.5.1、Rcmdr1.3-5、ess-5.3.4、Meadow3)~
このessのR processからlibrary(Rcmdr)を実行すると、langが...
~
そこで、Rのインストールディレクトリの /etc/Rconsole を開...
## Language for messages~
language = ja~
のように、強制的にjaにしてみました。~
~
これで、起動するRcmdrのメニューなどは、めでたく日本語にな...
やはり、Tcl/Tkにちゃんとlangを伝えないとだめなようです。~
~
Meadowの中のなにかを設定すればいいのではないかと思おうの...
~
どなたかアドバイスをお願いいたします。~
//
- essd-r.el を見てみて下さい. たぶん, default-process-cod...
- なかまさん、ありがとうございます。essの設定では、http:/...
- Rconsoleのlanguageはデフォルトのまま変更してませんが、...
- たぶん、Meadowが環境変数LANGを設定している(私のは"JPN"...
- 引数にLANGを与えればいいので、こんな感じでどうでしょう ...
(set-default-coding-systems 'cp932)
(set-terminal-coding-system 'cp932)
(set-keyboard-coding-system 'cp932)
(set-buffer-file-coding-system 'cp932)
(require 'ess-site)
(define-key ess-mode-map "\177" 'delete-char)
(setq ess-ask-for-ess-directory nil)
(setq ess-pre-run-hook
'((lambda () (setq S-directory default-directory)
(setq default-process-coding-system '(cp932 . cp932))
)))
(setq inferior-R-args "LANG=")
- なかまさん、ありがとうございます。LANGをja_JP.SJIS...
**datasetにhelpをつける方法を知りたいのですが [#x4277c6e]
>[[<ふ>]] (2007-10-02 (火) 14:58:10)~
~
RcmdrでR2.5.1を使っています。~
~
データの集計は、Excelでおこなって、それをRのDatasetとして...
~
この.Rdaでsaveされたデータセットに、helpをつける方法がわ...
~
Packageで提供されているDatasetには、helpがついていて、便...
~
ご教示ください。~
//
- [[パッケージを作る]]を参照のこと。今回の場合,プログラ...
- help(comment) -- &new{2007-10-02 (火) 17:36:41};
- help(comment)でオブジェクトにコメントする方法は、やって...
**折れ線プロットは?(plot) [#vc36ef84]
>[[kd]] (2007-09-25 (火) 03:46:53)~
~
折れ線プロット(すなわちポイント点は無印)を描こうと思っ...
(Mac版 R-2.5.1.dmg を使っております.)~
しかし下記を試しても折れ線プロットを描いてくれませんでし...
> plot(x$V2~x$V1,pch=-1,lty=1) ---> 丸印でポイント点を...
> plot(x$V2~x$V1,pch="",lty=1) ---> 無印,無線~
//
- あのー、検索すれば一発ですが..."plot" "折れ線"とかして...
答えを教えてもkdさんのためにならないので、検索の仕方を教...
他、[[リンク集:http://www.okada.jp.org/RWiki/?%A5%EA%A5%F...
わからないことがわからないと、何から手を付けて良いのかす...
- まず何より先に,ヘルプを読むべし。~
? plot しましょ。掲示板に質問して答えを待つなんて,まだる...
... Arguments to be passed to methods, such as graphical...
type~
what type of plot should be drawn. Possible types are~
"p" for points,~
"l" for lines,~
"b" for both, -- &new{2007-09-25 (火) 10:51:07};
- 久しぶりに?plotしたんですが、type="h"とか"s"って、昔か...
- どれくらい前のことを「昔」というかによりますが,動いて...
- あ、そうでしたか。ありがとうございます。 -- &new{2007-...
- 古い R をインストールして調べてみました。R 1.1.0 では,...
**igraphについて [#y7590742]
>[[あひる]] (2007-09-20 (木) 23:42:45)~
~
現在、大学でigraphを用いた授業を受けております。家でもじ...
//
- どのバージョンとか、OSは何だとか、どんなエラーが出る...
- どこの大学かは書かなくてもいいので(笑)、インストール...
- > Googleで検索したページでigraphのダウンロードはできた...
- 大学の授業なら、担当教官に聞くのが一番早いですよ。 -- ...
- 今夏休みで,かつ向学心に燃える学生なんでしょう -- &new...
- すみません、あまりこうゆうのには慣れていないもので。。O...
- まず、Rを起動してください。次にメニューから[パッケージ]...
- 上の方法で無事解決しました。どうもありがとうございますm...
**R Consoleの表示容量について [#ldc5578c]
>[[カイロ]] (2007-09-20 (木) 22:25:29)~
~
Rを利用して3日目です.医療データを用いたROC曲線を用いて予...
~
図のように,R Console上で数千行ある計算結果が得られるので...
~
宜しくお願いいたします.~
~
当方の環境:~
R version 2.5.1 (2007-06-27) ~
i386-pc-mingw32 ~
locale:~
LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;~
LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japan...
attached base packages:~
[1] "stats" "graphics" "grDevices" "utils" "data...
[6] "methods" "base" ~
~
#ref(consolegamen.png)~
~
//
- sink 関数を調べましょう。sink("foo.bar"); 作業; sink() ...
- できました! ".bar"を拡張子とするとうまく読めませんで...
- ところで,sink関数で吸い出された計算結果が必ずR本体のあ...
- setwd("作業ディレクトリ") -- [[aa]] &new{2007-09-21 (金...
- sink("c:/ファイル名") で直接ディレクトリ指定して落とせ...
- ご教示頂いた方法でうまくゆきました.aaさん,okinawaさん...
**nlme ライブラリ,lme のデフォルト [#i65fca75]
>[[キュロシ]] (2007-09-20 (木) 08:32:11)~
~
Mixed Effects Models in S and S-PLUS を勉強中のキュロシで...
作者(Pinheiro & Bates)に訊きなさい,という種の質問かも...
> library(nlme)
として nlme パッケージを使います.いくつかのデータセット ...
> f1 <- lme(Orange)
とすると,以下の結果が得られます.
> f1
Linear mixed-effects model fit by REML
Data: Orange
Log-restricted-likelihood: -139.9061
Fixed: circumference ~ age
(Intercept) age
17.3996502 0.1067703
Random effects:
Formula: ~age | Tree
Structure: General positive-definite
StdDev Corr
(Intercept) 1.89732541 (Intr)
age 0.02402639 -1
Residual 10.00622121
Number of Observations: 35
Number of Groups: 5
つまり,lme の argument である,fixed, random を data を...
とすると,
> f2<-lme(fixed=circumference ~ age, data=Orange, random...
とすることで同じ結果が得られそうなものですが,得られませ...
f1 のモデルが 収束しない f2 と何が違うのかがわかりません...
//
- lme(Orange) と同じ結果になるのは lme(fixed=circumferenc...
lme(fixed=circumference ~ age, data=Orange, random=~age|T...
- その場合の random effects は何なんでしょうか? -- [[キ...
- 私には分かりません。help に書いてあるかも。そもそも Mix...
- Pinheiro に訊いたところ, lme(Orange) とすると,まず l...
**回帰分析についての質問 [#j8da479f]
>[[netbean]] (2007-09-18 (火) 16:46:17)~
~
Rの初心者です。他ツールで解析経験がありますが、Rはまだ数...
step関数を用いてステップワイズ変数選択を実施する際、下記...
> step(RegModel.2)
Start: AIC= 189.44
。。。
object$residuals + predict(object) 中で警告がありました:
長いオブジェクトの長さが
短いオブジェクトの長さの倍数になっていません
以下にエラーlm.fit(x[, jj, drop = FALSE], y, offset = of...
矛盾した次元です
回帰のモデル精度が非常に低く、stepwiseを期待したいところ...
//
- エラーメッセージの通りです。object$residualsとpredict(o...
- 早速の回答、ありがとうございます。step関数の文法関して...
- あなたが何をどうやったのかがわかりませんので,回答不能...
- RegModel が何なのかわからないのに答えようがある? -- &...
- それにしても「使いはじめてから数時間」で質問するという...
- RegModelは、線形回帰の結果です。RegModel <- lm(X1_G~B+B...
- Data公開準備中です。Rの三日間セミナーで集中勉強し...
- 他のデータセットで動いて手持ちデータで動かないというこ...
- RegModel? <- lm(X1_G~B+BP+CH+CHP+CHPR, data=dataset) と...
- > 「使いはじめてから数時間」で質問する というのは,...
- 質問者本人じゃないですが、そんなに寄ってたかってつつか...
- つついているわけではなくて。ちゃんとした回答を得ようと...
ちょうど,この下の質問「判別分析の変数選択」を見てみたら...
- この掲示板って役にたつけどかなり雰囲気悪いよね.こわー...
- 恐いですよ(笑)。常連回答者はいささか無神経な質問に内心...
- 他の掲示板で、ここの場所の批判(袋だたきに会う、雰囲気...
- みなさん、いろんな意見とコメント、ありがとうございます...
- うまくいくほうといかないほうのデータを見比べて、少しず...
- 最初は他の人のスクリプトを書き換えながらこつを覚えるの...
**判別分析の変数選択 [#t57d70e8]
>[[mayu]] (2007-09-15 (土) 22:49:29)~
~
discの線形判別関数のソースを使い、判別分析をしています。~
自分が選んだ変数だけで解析したい場合どうすればいいのでし...
変数選択が出来るソースを探していたのですが見当たらず質問...
自分でプログラムを組めばいいのかもしれませんが、プログラ...
勉強不足ですみませんが、よろしければ回答お願いします。~
//
- disc とは何ぞや。「ソースを使い、判別分析」とは何ぞや....
- > 自分が選んだ変数だけで解析したい場合どうすれば~
そもそも,自分で選んだ説明変数を引数に指定するのでは?~
自分の望まない変数まで使われてしまうというのは被害妄想で...
二群判別なら,step(lm(ホゲホゲ))を使う。 &new{2007-09-16 ...
- 回答ありがとうございます。 説明不足ですみません。
discは、青木先生のホームページから頂いてきた線形判別関数...
自分で選んだ説明変数を指定して解析しようとするとエラーが...
> result <- disc(iris[,2,4], iris[5])
以下にエラーdata[OK, ] : 次元数が正しくありません
指定の方法が間違っているのでしょうか。
step(lm())ですか、勉強してみます。ありがとうございます。 ...
- disc( iris[c(2,4)], iris[5] ) . それと「変数選択」とい...
- この質問に関してデータフレームの添字操作に関する不可解...
> x <- data.frame(a=1:3, b=rnorm(3), c=runif(3), d=3:1)
> x[,2]
[1] -0.3922563 1.3033630 0.1997175
> x[,2,3] # これがエラーにな...
[1] -0.3922563 1.3033630 0.1997175
> x[,2,3,4]
以下にエラー`[.data.frame`(x, , 2, 3, 4) : 使われてい...
ああなるほど、x[,2,drop=3] つまり x[,2,drop=TRUE] と解釈...
- result <- disc(iris[,c(2,4)], iris[,5]) または,result2...
たいていの場合は,自分の使い方のミスを反省すべし。 -- &n...
- お礼が遅くなりすみません。皆様、ご回答ありがとうござい...
**数値データ、非数値データが混在するデータのカウント方法...
>[[terada]] (2007-09-14 (金) 21:20:20)~
~
こんにちは。数値データ、非数値データが混在するデータのカ...
> dat
記号1 記号2 記号3 記号4
90 B1 A1 A2 A2
91 B1 A1 A1 A1
92 B1 A1 A1
93 B1 A1 A1 A1
94 B1 B1 B3 K
95 K ...
96 B0 B0 B1 A1
97 B0
98 B1 A1
99 3
100 3
101 2
102 2
103 1
以上のようなデータ(14行4列のデータで、空いているところはn...
よろしくお願いします。~
~
すみません。質問の仕方が不適切でした。訂正します。
以下のような結果が得たいという意図で質問しました。
A1 A2 A3 B0 B1 B2 B3 K 1 2 3
11 2 0 3 7 0 1 2 1 2 2
再度アドバイスをいただければ幸いです。よろしくお願いしま...
//
- 例えば(簡単な例で、質問者も意味がわかる最小限の例を提...
> ( d <- data.frame(x=c("a","",3,1), y=c(1,2,"","a")) )
x y
1 a 1
2 2
3 3
4 1 a
> ( ud <- unlist(d) ) # リスト、データフレー...
x1 x2 x3 x4 y1 y2 y3 y4
a 3 1 1 2 a
Levels: 1 3 a 2
> levels(ud) <- c(levels(ud),"d") # データフレームに登場...
> ud
x1 x2 x3 x4 y1 y2 y3 y4
a 3 1 1 2 a
Levels: 1 3 a 2 d
> table(ud)
ud
1 3 a 2 d
2 2 1 2 1 0 # 先頭の2は空文字列が2回登場した、という意味
- ついでながら。数値と文字が混在するデータフレームでは、...
- うーん,このやりかたではうまくいかない? それとも空項目...
> table(ud)[-1] # 但し空文字水準がいつも先頭にくるかど...
ud
1 3 a 2 d
2 1 2 1 0
- 最初の質問を書き換えませんでした?一度コメントが付いた...
- 重ね重ねすみません。大幅な変更ではないので問題ないと思...
- ルール違反というのは,それに対するコメントが頓珍漢にな...
- 今日やっと解決しました。アドバイスありがとうございまし...
- ついでにどうしたら解決したのか報告していただくと、他の...
- 2度目にアドバイスしていただいた方法で解決することができ...
**ベクトルから特定の要素を削除するには? [#ab6b7e74]
>[[青葉]] (2007-09-13 (木) 13:40:42)~
~
昨日から始めた初心者です。壁にごつんごつん当たりながら進...
~
xから、yの中にある要素を数も考慮して取り除きたいのですが...
x <- c(1,1,1,2,2,2,3,3,3)~
y <- c(1,2,2)~
この2つから、(1,1,2,3,3,3)というベクトルを作りたいのです。~
また、xから要素の種類だけ特定して取り除くことが可能でしょ...
例えばx <- c(1,1,1,2,2,2,3,3,3)から2という数字だけを指定...
検索の仕方が悪いのかもしれませんが、苦戦しております。ど...
//
- この程度のことは自分でなんとかして初めてRへの理解が進む...
- コメントありがとうございます。ヒントだけいただいてよろ...
- (okinawa さんの意見に内心同感ながら) x[-which(x == 2)...
- x[!x%in%2]とか。~
[[教えて君:http://myu.daa.jp/osiete/]]にならないように頑...
- 最初の例は for ループを素直に使うべき例? -- &new{2007-...
> xx <- x
## match は最初のマッチ位置を返すので好都合
## xx を順次縮小変更していることに注意
> for (i in y) xx <- xx[-match(i,xx)]
> xx
[1] 1 1 2 3 3 3
- みなさまコメントありがとうございます。小さな壁は自分で...
- 奇策を弄す -- &new{2007-09-13 (木) 15:26:04};
> x <- c(1,1,1,2,2,2,3,3,3)
> y <- c(1,2,2)
> result <- merge(data.frame(a=table(x)),
+ data.frame(a=table(y)),
+ by.x="a.x", by.y="a.y", all=TRUE)
> rep(as.numeric(levels(result[,1]))[result[,1]],
+ ifelse(is.na(result[,3]), result[,2], result[,2]-r...
[1] 1 1 2 3 3 3
- rep(unique(x),c(table(x) - table(factor(y,levels=unique...
**ベクトルの要素の種類数を知るには? [#t92e615a]
>[[青葉]] (2007-09-13 (木) 00:13:47)~
~
今日使い始めたばかりの初心者です。~
ベクトルの要素の数を知るにはlengthで良いことは分かったの...
例えば、x <- c(1, 1, 2, 2, 2, 3)だったら、要素の数は6です...
どなたかどうぞよろしくお願いします。~
//
- length(unique(x)) 他にも一発の関数はありそうだけど。 --...
- ありがとうございます!これでやっと先に進めます。感謝で...
- R 本体には一発関数はないと思います。takahashi さんの例...
> factor(x)
[1] 1 1 2 2 2 3
Levels: 1 2 3
> nlevels(factor(x))
[1] 3
> union(x,NULL)
[1] 1 2 3
> length(union(x,NULL))
[1] 3
> duplicated(x)
[1] FALSE TRUE FALSE TRUE TRUE FALSE
> sum(!duplicated(x))
[1] 3
> table(x)
x
1 2 3
2 3 1
> names(table(x))
[1] "1" "2" "3"
> length(names(table(x)))
[1] 3
> sum(table(x) == 2) # 丁度二回登場した要素数
[1] 1
- 副作用ならsummary(factor(x))とか -- &new{2007-09-13 (...
- 答えは3にならないといけないので,summary(factor(x)) で...
- 他の方々もコメントありがとうございます。予想外に多くの...
**tcltk のロードができません [#pec97a42]
>[[yosito]] (2007-09-11 (火) 18:21:39)~
~
R 初心者です。環境は MacOS X (10.4) にて、R.app を使って...
tcltk は標準で package に含まれているのですが、いざロード...
以下のようなメッセージが出てロードできませんでした。
要求されたパッケージ tcltk をロード中です
Tcl/Tk インターフェース ロード中... Error in fun(...) : ...
Error : .onLoad は 'tcltk' のための 'loadNamespace' で...
エラー: パッケージ 'tcltk' をロードできませんでした
どなたか対処法をご存知でしたら、教えてください~
//
- Tcltkが必要なパッケージを起動させる場合は、X11を起動し...
- Rを起動した後でも,X11が必要になったら,ツールバーの「X...
- どうもありがとうございました。X11 を起動させておく必要...
**nlme ライブラリ内の plot のマージンを変更する方法 [#kf2...
>[[キュロシ]] (2007-09-11 (火) 04:42:46)~
~
Pinheiro & Bates の "Mixed-Effect Models in S and S-PLUS"...
library(nlme)
とした後~
plot(Dialyzer,outer=~QB)
を実行すると,下図のようなきれいな図が描けます.~
~
#ref(groupedData1.jpg)~
~
ひとつだけ大きな外れ値があったとします.すなわち~
Dialyzer$rate[1] <- 500
です.~
~
ここで,先ほどと同じ図を描こうとすると~
plot(Dialyzer,outer=~QB)
マージンが妙に大きい奇妙なプロットになってしまいます.~
~
#ref(groupedData2.jpg)~
~
このマージンを自由に変更したいのですが,いまひとつやり方...
ヘルプファイルは~
?plot.nffGroupedData(nlme)
だと思うのですが,該当するヘルプがわかりませんでした.~
このマージンはどのように変更できるのでしょうか?~
//
- マージンって何ですか?ylimのことですか?plot(Dialyzer,out...
- そんなに極端な外れ値がある場合,全部を含めた図を描こう...
- ヘルプがあるとすれば見方は ?plot.nffGroupedData で...
- ylim の値によって,プロットの見た目が上記の例のように変...
- コメントに従って help を見ていますか?~
plot(Dialyzer,outer=~QB, log="y", asp=1)
のように,log パラメータと asp パラメータを使うのが吉かと...
それにしても,極端な外れ値ですねぇ。~
それと,グラフファイルはjpegは不適切ですよ。pngがよいでし...
#ref(nlme-plot.png)
- ありがとうございました.別に外れ値でなくてもよかったの...
- > ylim の値によって, asp が変わる~
普通はその方が好ましい(少なくとも作者はそう考えた)と言う...
しかし,場合によっては困るのでasp引数を使うと言うことでし...
理由が知りたい場合は,パッケージの作者にお聞き下さい(^_^;...
- パッケージ作者はこんなおかしなデータのことまで考慮して...
**特定の行と列を削除した行列の作り方 [#u83f0050]
>[[KK]] (2007-09-10 (月) 11:57:13)~
~
ある行列Aの特定の行および列を削除した行列Bを作りたい場...
よろしくお願いいたします。~
//
- 添え字の指定の仕方を調べましょう[[行列Tips大全]]などを...
- 検索不足でした。ありがとうございます。 -- [[KK]] &new...
**日付+時刻の時系列のプロットでの扱い [#h997d662]
>[[たけ]] (2007-09-01 (土) 15:54:42)~
~
たとえば2006/01/01 00:00:00から2007/09/01 15:48:32までの...
どうぞよろしくお願いします。~
//
- 例えば -- &new{2007-09-01 (土) 19:42:36};
gnp <- ts(cumsum(1 + round(rnorm(365), 2))) # ...
Dt <- seq(as.Date("2001-1-1"), len=365, by="1 day") # 2...
DDt <- sub("2001-","",Dt) # "...
plot(gnp, xaxt="n") # x...
Dy <- 1+50*(0:7) # ...
Dc <- DDt[Dy] # ...
axis(1,at=Dy, labels=Dc) # ...
あとは Dy (必要に応じて DDt も) を好きなように変えればよ...
- ありがとうございます。テキスト処理に不慣れでしたが、何...
**2つの因子の重複 [#qa14a61a]
>[[KEN]] (2007-08-30 (木) 17:53:43)~
~
2つのデータ(data1とdata2)の各因子(1〜6)の一致をみたい...
data1 data2
1 A B
2 B A
3 B B
4 B A
5 A B
使用環境:R version 2.4.1 (2006-12-18) i386-pc-mingw32~
//
- たとえば -- &new{2007-08-30 (木) 18:01:59};
> x
data1 data2
1 B B
2 A B
3 B A
4 A A
5 A A
> sum(x$data1 == x$data2)
[1] 3
> mean(x$data1 == x$data2)
[1] 0.6
注:アーカイブに投稿されていましたので、移動しました.
- どうもありがとうございました。早速試してみます。 -- [[K...
- 試してみましたところエラーがでました「以下にエラーOps.f...
- 老婆心ながら。x$data1 == x$data2 は各行毎に一致するかど...
- コマンド str(x$data1) と str(x$data2) の結果を投稿し...
- > エラーがでました データフレームはちゃんと作られてい...
- factor の比較は注意が必要。 -- &new{2007-08-30 (木) 19...
比較するfactor ベクトルの水準数が等しくないとエラーになる
> x <- data.frame(data1 = factor(sample(letters[1:6], 10...
+ data2 = factor(sample(letters[1:6], 10, replace=TRUE)))
> x
data1 data2
1 d f
2 c d
3 f f
4 a b
5 c a
6 d d
7 d e
8 f c
9 c a
10 e e
> x$data1 == x$data2
以下にエラーOps.factor(x$data1, x$data2) : 因子の水準...
> levels(x$data1)
[1] "a" "c" "d" "e" "f" ← "b" がない
> levels(x$data2)
[1] "a" "b" "c" "d" "e" "f"
文字型のまま比較した方がよい
- 本来の値に戻して sum( levels(x$data1)[x$data1] == leve...
- ↑ character にして比較しているので○。もし,データファイ...
- str(x$data1)は「Factor w/ 4 levels」、str(x$data2)は「F...
- sum( levels(x$data1)[x$data1] == levels(x$data2)[x$data...
- 念のため。 levels(x$data1)[x$data1] は仮に x$data1 が...
- [[因子Tips大全]] 参照。 -- &new{2007-09-02 (日) 07:52:...
**heatmapのlegend [#nd006177]
>[[みゅー]] (2007-08-29 (水) 11:02:21)~
~
かなり調べたつもりなのですが、heatmapのlegendのつけ方がわ...
//
- 例えば次の例など参考になりますか.これは Zoonekynd 氏の...
# Polar plot to spot seasonal patterns
x <- as.vector(UKgas)
n <- length(x)
theta <- seq(0, by=2*pi/4, length=n)
plot(x * cos(theta), x * sin(theta),
type = "l",
xlab = "", ylab = "",
main = "UK gas consumption")
abline(h=0, v=0, col="grey")
abline(0, 1, col="grey")
abline(0, -1, col="grey")
circle <- function (x, y, r, N=100, ...) {
theta <- seq(0, 2*pi, length=N+1)
lines(x + r * cos(theta), y + r * sin(theta), ...)
}
circle(0,0, 250, col="grey")
circle(0,0, 500, col="grey")
circle(0,0, 750, col="grey")
circle(0,0, 1000, col="grey")
circle(0,0, 1250, col="grey")
segments( x[-n] * cos(theta[-n]),
x[-n] * sin(theta[-n]),
x[-1] * cos(theta[-1]),
x[-1] * sin(theta[-1]),
col = terrain.colors(length(x)),
lwd = 3)
text(par("usr")[2], 0, "Winter", adj=c(1,0))
text(0, par("usr")[4], "Spring", adj=c(0,1))
text(par("usr")[1], 0, "Summer", adj=c(0,0))
text(0, par("usr")[3], "Autumn", adj=c(0,0))
legend("topright", legend = c(1960, 1973, 1986),
fill = terrain.colors(3)) # このあたり
- 助かります。ありがとうございます。早速試してみます。 --...
- R Graphics Manual はRのパッケージ中の Example 画像を一...
**Rのコンパイラー [#f5ef362f]
>[[あつ]] (2007-08-28 (火) 18:31:23)~
~
http://www.cs.uiowa.edu/~luke/R/compiler/~
RのコンパイラーをWindowsのマシンに入れようとするのですが...
tar.gz形式なので、一度展開してzip形式にしてGUI画面から読...
仕方なく
R CMD INSTALL compiler_0.1.-3.tar.gz
としても、テンポラリーの位置が合わないのか展開されせん。t...
どうやったら、これがR-2.5.1で動くか、どなたかお教え願えま...
//
- エラーが良く分からないのですが、古いRが残っていて、新し...
- R byte compiler は久しく開発が停止しています.そもそも ...
- 古いRは、残っていません。> > library(compiler)以下にエ...
- Linuxはないので、sparcのsolaris10で試してみたら、そのま...
- 解凍したパッケージのR/cmp.Rを、そのままwindowsの画面に...
**変数の交換 [#c0138f48]
>[[とも]] (2007-08-27 (月) 17:29:39)~
~
中間変数を使わずに内容を交換することは可能ですか。例とし...
a1 <- c(1,2,3)
a2 <- c(2,3,4)
z <- a1
a1 <- a2
a2 <- z
//
- できないでしょう。 -- &new{2007-08-27 (月) 18:38:24};
- 結局明示的にせよ暗黙にせよ中間変数を使わない限りスワッ...
> swap <- function(a,b) {tmp <- b; b <<- a; a <<- tmp}
> a=1:5; b=rnorm(5)
> swap(a,b)
> a
[1] 0.25953799 -0.13130845 0.51087979 -0.67557507 0.6...
> b
[1] 1 2 3 4 5
なお、例えば行列の列や行の交換は次のようにすれば(明示的...
> X[c(m,n),] <- X[c(n,m),] # m 行と n 行の交換
- "中間変数"を使わない例(笑) -- &new{2007-08-27 (月) 19:...
> a <- 1:3; b <- rnorm(3)
> a <- list(a,b); b <- a[[1]]; a <- a[[2]]
> a
[1] 1.23461645 -0.08733515 0.62929149
> b
[1] 1 2 3
- listはデータ構造が違うので,ベクトルの中間変数ではない...
a <- 1:3
b <- rnorm(3)
write(a,"temp")
write(b,"temp2")
b <- scan("temp")
a <- scan("temp2")
- list の例の類例ですが -- &new{2007-08-27 (月) 21:07:54};
a <- 1:3; b <- rnorm(3)
a <- rbind(a, b)
b <- a[1,]
a <- a[2,]
まあ,いずれも,トリビアルな例
- RubyではできるのでRではどうかなと思っていましたが、でき...
- スワップを行うシステム関数があるかどうかというご質問だ...
- 「Rubyではできるので」 裏で中間変数を使ってるんじゃない...
- Rにはスワップのための関数や演算子の使い方があるのかなと...
- a1 <- a1+a2 a2<- a1-a2 a1 <- a1-a2 でできませんかね...
- この問題が「クイズとして」出されるときに裏技として解説...
> a1 <- 1e10; a2 <- 1e-10
> a1
[1] 1e+10
> a2
[1] 1e-10
> a1 <- a1+a2; a2<- a1-a2; a1 <- a1-a2
> a1
[1] 0 ← これは困る
> a2
[1] 1e+10
**関数内の変数が展開されない [#dfa68852]
>[[kutakuta]] (2007-08-24 (金) 20:46:58)~
~
よろしくお願いします。
R version 2.5.1 (2007-06-27) powerpc-apple-darwin8.9.1 を...
ggplotというライブラリをつかって箱ヒゲ図+jitterplotを作ろ...
行列"data"の中に"class"というカラムと"colx"(x=1-N)という...
例:
http://bg9.imslab.co.jp/Rhelp/R-2.4.0/src/library/ggplot/...
p <- ggplot(data,aesthetic=list(y = class, x = col1))
ggjitter(ggplot(p))
とするとうまく目的の図が得られるのですが、
i <- 1
p <- ggplot(data,aesthetic=list(x = class, y = paste("co...
ggjitter(ggplot(p))
とするとうまくいきません。
summary(p)で変数の中身をみてみると、xの値が望みの"col1"で...
いろいろ試してみたのですが、どうしてもこの問題が解決でき...
どなたかヒントをいただけないでしょうか。
//
- paste("col",i,sep="")で変数名が作れるとは思えません。ev...
- 必要なデータの定義などもちゃんと付けて質問しましょう。...
- つまりあなたは x = col1 ではなく x = "col1" と指定した...
x = data[[i+1]] # データフレームなら
x = data[,i+1] # 行列なら
- ご返答ありがとうございます。質問で十分な情報を書かなか...
dataにはクラス名(0/1の2クラス)が"class"という添字付きで...
ggplot関数でx=...の...の部分はカラムの添字を代入するよう...
- かなり意味不明(失礼)。まずカラムなどといういい方はど...
- 小さいセットで良いので手持ちのデータとあなたがしたこと...
- あなたのやったことを再現できないんですよ~
> p <- ggplot(data,aesthetic=list(y = class, x = col1))~
> ggjitter(ggplot(p))~
> とするとうまく目的の図が得られるのですが、~
と書いているんだが,そもそもこの前の方のdata がどういう風...
data <- data.frame(class=factor(rep(1:4, each=10)),
col1=rnorm(40), col2=rnorm(40))
ぐらいかなと思うが,これじゃエラーメッセージが出てしまい...
- kutakutaさん、まず str(data) の結果を見せていただけま...
- 質問の仕方があまりにも拙く、余計なお手数をおかけしてし...
## load library
library(ggplot)
## create data
data <- data.frame(matrix(c(rep(0,10),rep(1,10),rnorm(60...
data[,1] <- factor(data[,1])
colnames(data) <- c("class","col1","col2","col3")
## do each process (it works).
pdf("col1_doeach.pdf")
p <- ggplot(data,aesthetic=list(y = col1,x = class))
ggjitter(ggboxplot(p))
dev.off()
pdf("col2_doeach.pdf")
p <- ggplot(data,aesthetic=list(y = col2,x = class))
ggjitter(ggboxplot(p))
dev.off()
pdf("col3_doeach.pdf")
p <- ggplot(data,aesthetic=list(y = col3,x = class))
ggjitter(ggboxplot(p))
dev.off()
## use variable (doesn't work)
column_name <- "col1"
pdf("col1_var.pdf")
p <- ggplot(data,aesthetic=list(y = column_name,x = clas...
ggjitter(ggboxplot(p))
dev.off()
## use 'for' (doesn't work).
for (i in 1:3){
column_label = paste("col",i,sep="")
p <- ggplot(data,aesthetic=list(y = column_label,x = cl...
pdf(paste(column_label,".pdf",sep="")
gjitter(ggboxplot(p))
dev.off()
}
以上のコードのうち、"do each"の部分は意図したように動きま...
ご回答者の方が指摘されている通り、列のラベルを文字列で指...
なぜ変数に列のラベルを入れる事にこだわっているかと言うと...
質問内容、質問の仕方ともに未熟な部分があり不愉快な思いを...
- 本質的な解決ではないかもしれませんが。ggplotが吐き出す...
for (i in 1:3){
column_label = paste("col",i,sep="")
p <- ggplot(data,aesthetic=list(y = column_label,x = cl...
p$ylabel <- column_label
p$defaults[[1]] <- uneval(as.formula(paste(column_label...
ggjitter(ggboxplot(p))
}
- ご返答どうもありがとうございます。~
ご案内いただいた通りにやってみてsummary(p)で確認するとpの...
ただ、私の環境では最後のggjitter(ggplot(p))の部分で~
以下にエラーas.data.frame.default(x[[i]], optional = TRU...
クラス "function" はデータフレームに強制変換できま...
というエラーが出てしまいました~
私自身いただいたソースの意味をまだきちんと理解できていま...
週末にもかかわらずご返答ありがとうございました。 -- [[kut...
- p <- ggplot(data,aesthetic=list(y = get(column_name),x ...
- ご回答ありがとうございます。ご指摘いただいた方法でやっ...
> summary(p)
Title:
Labels: x=class, y=get(column_label)
Data: class, col1, col2, col3 [20x4]
Defaults: y=get(column_label), x=class
Scales:
Grobs:
Facetting: ". ~ ."
Margins: FALSE
という風にget(column_label)の部分が展開されないままとなっ...
- p <- ggplot(data,aesthetic=list(y = get(column_name),x ...
- 最初の質問で aesthetic=list(y = class, x = col1) にな...
で,要するにaesthetic=list(y = col1, x=class) なんであっ...
library(ggplot)
## create data
data <- data.frame(matrix(c(rep(0,10),rep(1,10),rnorm(60...
data[,1] <- factor(data[,1])
colnames(data) <- c("class","col1","col2","col3")
i=3
p <- ggplot(data,aesthetic=list(y = eval(parse(text=past...
ggjitter(ggboxplot(p))
最初から,data を付けて質問すれば,直ぐ解決したことだと思...
- ご返答ありがとうございます。ご指摘の通りはじめに示した...
> summary(p)
Title:
Labels: x=class, y=eval(parse(text = paste("col", i, ...
Data: class, col1, col2, col3 [20x4]
Defaults: y=eval(parse(text = paste("col", i, sep = "")...
Scales:
Grobs:
Facetting: ". ~ ."
Margins: FALSE
なにぶん初心者なものでプログラミングのスジ自体が良くない...
私自身スジの悪さは認識しておりますので、ご回答者様が不愉...
- kutakutaさん,お役に立てず申し訳ございませんでした。な...
- おかしいですね。なぜ動かないのでしょう。~
別に回答者は不快に思っているわけではないと思いますよ。こ...
> library(ggplot)
要求されたパッケージ grid をロード中です
要求されたパッケージ reshape をロード中です
要求されたパッケージ RColorBrewer をロード中です
次のパッケージを付け加えます: 'ggplot'
The following object(s) are masked _by_ .GlobalEnv :
alpha
> ## create data
> data <- data.frame(matrix(c(rep(0,10),rep(1,10),rnorm(...
> data[,1] <- factor(data[,1])
> colnames(data) <- c("class","col1","col2","col3")
> i=3
> p <- ggplot(data,aesthetic=list(y = eval(parse(text=pa...
> ggjitter(ggboxplot(p))
> summary(p)
Title:
Labels: x=class, y=eval(parse(text = paste("col", i,...
Data: class, col1, col2, col3 [20x4]
Defaults: y=eval(parse(text = paste("col", i, sep = ""...
Scales:
Grobs:
Facetting: ". ~ ."
Margins: FALSE
> str(p)
List of 11
$ data :'data.frame': 20 obs. of 4 variables:
..$ class: Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1...
..$ col1 : num [1:20] 0.205 1.523 0.946 -0.496 0.8...
..$ col2 : num [1:20] 0.0696 -1.5451 1.1064 -1.4103 ...
..$ col3 : num [1:20] 0.527 0.828 0.972 0.352 1.200 ...
$ grobs : list()
$ scales : list()
..- attr(*, "class")= chr "scales"
$ defaults :List of 2
..$ y: language eval(parse(text = paste("col", i, sep ...
..$ x: symbol class
$ title : chr ""
$ fixedaspect: logi FALSE
$ xlabel : chr "class"
$ ylabel : chr "eval(parse(text = paste(?"col?", i,...
$ formula : chr ". ~ ."
$ margins : logi FALSE
$ facet :List of 1
$ : num 0
- attr(*, "dim")= int [1:2] 1 1
- attr(*, "dimnames")=List of 2
..$ : chr "value"
..$ : chr "value"
- attr(*, "rdimnames")=List of 2
..$ :'data.frame': 1 obs. of 1 variable:
.. ..$ value: Factor w/ 1 level "value": 1
..$ :'data.frame': 1 obs. of 1 variable:
.. ..$ value: Factor w/ 1 level "value": 1
- attr(*, "idvars")= chr "value"
- attr(*, "class")= chr "ggplot"
こんな風になって,以下のような図が描けましたけど。 -- &n...
#ref(ggplot99.png)
- たぶん望む物が2つ重なって質問されているのではないでし...
i<-3 # = より <- を使いましょう
text<-paste("p <- ggplot(data,aesthetic=list(y = ","col"...
eval(parse(text = text))
ggjitter(ggboxplot(p))
のようにするとy軸ラベルが望む物になるとおもいます。また、...
- まあ,確かに ggplot は変な仕様ですね。ついでに言えばデ...
- boxplot と points を使って描くと以下のようなもの。ラベ...
set.seed(1234)
data <- data.frame(class=factor(rep(0:1,each=10)), col1=...
layout(matrix(1:3, ncol=3))
par(cex=1.2)
for (i in 1:3) {
boxplot(eval(parse(text=paste("col", i, sep="")))~class,...
points(jitter(as.numeric(data$class)), eval(parse(text=p...
}
#ref(ggplot98.png)
なお,上のような場合だと,
boxplot(data$class, data[,i+1], outline=FALSE)
points(jitter(as.numeric(data$class)), data[,i+1], col="...
とする方が,簡明・明快
- good job! 質問と乖離しましたが、ggplotを使わないほうが...
- うまく行きました。皆さまありがとうございました。 -- [[k...
**Rコマンダーの日本語表示について [#p5662af0]
>[[J]] (2007-08-23 (木) 20:55:38)~
~
Mac OS 10.4.10 上で R ver.2.5.1 とRcmdr 1.3-5 を使ってい...
Rコマンダーの日本語メニュー表示がやや読みにくいのですが,...
//
- どういう風に読みにくいのでしょうか?また,もし「fontの設...
- 言葉足らずで失礼しました。メニュー等の日本語表示で文字...
オプションでdefault fontを変えてみようと試みましたが失敗...
- 我流ですが...
1. ttfを持ってくる
http://sourceforge.jp/projects/efont/ から sazanamiあ...
tar jxvf sazanami-20040629.tar.bz2
2. 自前用のフォントの格納ディレクトリを作成
mkdir -p /usr/X11R6/lib/X11/fonts/japanese
3. フォントのコピー
cp sazanami*.ttf /usr/X11R6/lib/X11/fonts/japanese/
4. /usr/X11R6/lib/X11/fonts/japanese/fonts.dirの作成
==================== ここから ==========================...
32
vl=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:ds=y:ai=0.2:sazanami-mincho.ttf -sazanami-mincho-...
vl=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
vl=y:ds=y:ai=0.2:sazanami-gothic.ttf -sazanami-gothic-...
==================== ここまで ==========================...
5. フォントパスの追加
xset +fp reash の追加
--- /etc/X11/xinit/xinitrc.orig
+++ /etc/X11/xinit/xinitrc
@@ -24,6 +24,9 @@
xmodmap "$usermodmap"
fi
+xset +fp /usr/X11R6/lib/X11/fonts/japanese
+xset reash
+
# start some nice programs
xterm &
otfだとTTCapのイタリックが使えないので, ttfがR的にはおす...
- RにおけるMacOSXでのtcltkはX11を使います. X11のフォント...
- 仰る通り,私が知りたかったのは「OSX上でRcmdrのフォント...
ご教示頂いたやり方は,私には少し敷居が高いのですが勉強し...
**ファイル出力加工 [#h9dfadc5]
>[[Bun]] (2007-08-23 (木) 20:21:21)~
~
R初心者です。分かりづらい標記でしたら、ご指摘の程よろし...
~
以下のプログラムで、クロス集計の結果を外部出力しました。
x<-c(1,2,1,2,1,2)
y<-c(1,1,1,2,2,2)
z<-data.frame(x,y)
z[,1] <- factor(z[,1], levels=1:2, labels=c("男", "女"))
XTBL<-table(z[,1],z[,2])
write.table(XTBL, file="C:/XTBL.txt", append=F, quote=F,...
下記は、出力結果
1 2
男 2 1
女 1 2
上記の結果ファイルをエクセルで読み込み、作業したいのです...
//
- どのような結果を期待しているのかよくわからない。以下の...
> x<-c(1,2,1,2,1,2)
> y<-c(1,1,1,2,2,2)
> x <- factor(x, levels=1:2, labels=c("男", "女"))
> y <- factor(y, levels=1:2, labels=c("あり", "なし"))
> XTBL<-table(x,y)
> XTBL
y
x あり なし
男 2 1
女 1 2
> 上記の結果ファイルをエクセルで読み込み、作業したいので...
なんで,Excel なんかで読んで作業するんだろう
- fix(XTBL)でデータエディタで見ると、row.namesという変数...
- 次のようにすればそれらしくなりますが。 -- &new{2007-08...
> z <- data.frame(x,y)
> z[,1] <- factor(z[,1], levels=1:2, labels=c("男", "女"))
> XTBL <- table(z, dnn=c("sex",""))
> XTBL
sex 1 2
男 2 1
女 1 2
- ご回答ありがとうございます。テキストファイルの生成時に...
- ?write.tableでcol.namesのoptionを見ましょう。Bunさんの...
write.table(z, firle="hoge.csv", col.names=NA, sep=",")
です。ExcelでできるならExcelですれば良いと思います。私は...
それにしてもhelpを読まない人が多すぎます... -- &new{2007...
- ↑(内心)同感ですが、一方で計算機ソフトのヘルプ文章は、...
- 解決できました。どうもありがとうございました。 -- [[Bun...
**Rコマンドファイル内からディレクトリ作成は出来ますか? [...
>[[みゅー]] (2007-08-23 (木) 16:21:27)~
~
R初心者につき言葉足らずな質問になっていたらごめんなさい。...
~
大量のファイルが生成されるため種類ごとに出力を分けたいと...
シェルコマンドのmkdirに対応するようなRコマンドはあります...
みつけられませんでした。~
(ls()やrmは使えるようですね。)~
~
単に、./以下にhogeディレクトリを作成していない状態のまま"...
先に./hogeを用意しておかないとだめ、~
ディレクトリ生成はできないということでしょうか。~
//
- shell("mkdir hoge")でたいがいのシステムではいけるんじゃ...
- ?dir.create -- [[なかま]] &new{2007-08-23 (木) 16:48:10};
- dir.createでいけました ありがとうございます -- [[み...
- shell は通りませんでした。 関数"shell"を見つけることが...
- 追加自己解決です。windowsならshell()でいけますね。unix...
- Windowsでもsystem()は使えます。DOS系コマンドはshell()で...
**変数名の修正 [#odeeb70c]
>[[Bun]] (2007-08-23 (木) 15:22:23)~
~
既に変数名を含んだデータセットについて、一部の変数名を新...
//
- 簡単な具体例を挙げてください。回答者に余分な推測をさせ...
- colnames(df)[4] <- "new.name" -- &new{2007-08-23 (木) ...
- 元のデータファイルの変数名を書き換える -- &new{2007-08...
- ありがとうございます。2番目の方の回答で解決できました...
**関数実行時の入力文字列の取得方法 [#j5591758]
>[[r_user]] (2007-08-18 (土) 10:14:36)~
~
たとえば、f(x)と入力して関数fを実行すると、関数にはオブジ...
中身だけでなく、文字列xも取得して利用できるような関数を定...
引用符を付けてf("x")のようにするのではなく、普通にf(x)と...
xの中身に加えて、"x"という文字列も取得して利用できないも...
//
- f<-function(...)print(paste(match.call())[-1]) -- [[tak...
- 少し趣旨が違いますが,Rで仮引数の(未評価)実引数を取り...
> foo <- function(x) {substitute(x)}
> y <- foo(1:10)
> str(y)
language 1:10
> eval(y)
[1] 1 2 3 4 5 6 7 8 9 10
- ご教授ありがとうございます。match.call()、substitute()...
- もう少し簡略に(htest 属性を持つ stats の関数で常用され...
bar <- function(x) return(deparse(substitute(x)))
**条件によるIDの振り分けについて [#c1fac891]
>[[suzuki]] (2007-08-17 (金) 17:17:46)~
~
はじめまして。こんにちは。~
データによるIDの振り分けについて質問させてください。~
~
DATA1 DATA2 DATA3
1 30 1
1 30 1
1 30 1
1 30 2
1 30 2
1 31 1
1 31 1
1 31 1
1 31 1
2 30 1
2 30 2
2 30 2
2 30 2
2 30 3
2 30 3
~
以上のようなデータがあって、以下のようにDATA1、DATA2、DAT...
IDを振り分けていきたいのですが、各IDの行数がランダムであ...
ある程度、手作業でできなくもないのですが、20万行ほどのデ...
アドバイスよろしくお願いします。~
~
DATA1 DATA2 DATA3 ID
1 30 1 1
1 30 1 1
1 30 1 1
1 30 2 2
1 30 2 2
1 31 1 3
1 31 1 3
1 31 1 3
1 31 1 3
2 30 1 4
2 30 2 5
2 30 2 5
2 30 2 5
2 30 3 6
2 30 3 6
//
- 美しくないしコストも考えてないけど、dはデータフレームで...
- 以下のようにするのはいかが?このやり方だと,フィールドが...
> y <- apply(x, 1, paste, collapse="/")
> z <- names(table(y))
> x["ID"] <- sapply(y, function(i) which (i == z))
> x
DATA1 DATA2 DATA3 ID
1 1 30 1 1
2 1 30 1 1
3 1 30 1 1
4 1 30 2 2
5 1 30 2 2
6 1 31 1 3
7 1 31 1 3
8 1 31 1 3
9 1 31 1 3
10 2 30 1 4
11 2 30 2 5
12 2 30 2 5
13 2 30 2 5
14 2 30 3 6
15 2 30 3 6
- もし DATA1,DATA2,DATA3 が全て非負整数値であまり大きくな...
> a <- max(x)+1
> xx <- transform(x, ID=as.factor(x[,1]*a^2+x[,2]*a+x[,3...
> xx
DATA1 DATA2 DATA3 ID
1 1 30 1 1985 # 数値に拘らなければこれだけ...
2 1 30 1 1985
3 1 30 1 1985
4 1 30 2 1986
5 1 30 2 1986
6 1 31 1 2017
7 1 31 1 2017
8 1 31 1 2017
9 1 31 1 2017
10 2 30 1 3009
11 2 30 2 3010
12 2 30 2 3010
13 2 30 2 3010
14 2 30 3 3011
15 2 30 3 3011
> levels(xx[,4]) <- 1:nlevels(xx[,4]) # もし1,2,3,...と...
> xx
DATA1 DATA2 DATA3 ID # ただしIDは因子です
1 1 30 1 1
2 1 30 1 1
3 1 30 1 1
4 1 30 2 2
5 1 30 2 2
6 1 31 1 3
7 1 31 1 3
8 1 31 1 3
9 1 31 1 3
10 2 30 1 4
11 2 30 2 5
12 2 30 2 5
13 2 30 2 5
14 2 30 3 6
15 2 30 3 6
> xx[,4] <- as.integer(xx[,4]) # もし因子でなく整数値の...
時間比較例:
> set.seed(1)
> x <- data.frame(DATA1=sample(1:10, 2e5, rep=TRUE),
DATA2=sample(20:40, 2e5, rep=TRUE),
DATA3=sample(10:20, 2e5, rep=TRUE))
> a <- max(x)+1
> system.time({xx <- transform(x, ID=as.factor(x[,1]*a^2...
levels(xx[,4]) <- 1:nlevels(xx[,4])})
ユーザ システム 経過
0.196 0.124 0.929
> system.time({y <- apply(x, 1, paste, collapse="/"); z ...
x["ID"] <- sapply(y, function(i) which (i ...
ユーザ システム 経過
147.873 0.656 154.912
- 本当にありがとうございます。自分が組んでいたプログラム...
**Rcmdr QQプロット [#lf955165]
>[[KT]] (2007-08-15 (水) 18:25:40)~
~
Rcmdrで2つのデータをQQプロットに同時にのせたいと思います...
//
- RcmdrはRにGUI環境をつけただけと思うので、Rでできるなら...
- Rcmdr でできるかどうかは問題じゃなくて,R でできるかど...
- 色をかえて、2つのデータを同時に1つの図の上に載せたい...
- それらしいものを書くには、スクリプトウィンドウに出てい...
> qqnorm(a,xlim=c(-3,3),ylim=c(min(c(a,b)),max(c(a,b))),...
> par(new=T)
> qqnorm(b,xlim=c(-3,3),ylim=c(min(c(a,b)),max(c(a,b))),...
とかにすると、軸を一致させたプロットになります。
でも、直線にだいたいのっているかどうかを比べてみたいだけ...
> qqnorm(a,xlim=c(-3,3),yaxt="n",col="red")
> par(new=T)
> qqnorm(b,xlim=c(-3,3),yaxt="n",col="blue")
というのもありかもしれませんね。-- &new{2007-08-16 (木) ...
- どうもありがとうございました。Rcmdrでは無理とのことです...
- どうもありがとうございました。早速試してみます。 -- [[K...
**RのグラフをPower point上で変更 [#h3a581e7]
>[[sh]] (2007-08-08 (水) 01:40:14)~
~
Rのグラフ(軸ラベルのフォント、プロット記号)をPower poin...
//
- Windowsならば、emf(メタファイル)でCOPY&PASTEすれば可...
- emfファイルで保存するにはどうすればよろしいでしょうか?...
- macosxでemfは使えません。 -- [[okinawa]] &new{2007-08-1...
- macosxにおいて、RのグラフをPower point上で変更する方法...
- Power Point なんか使うのやめたら? -- &new{2007-08-12 ...
- 前コメント者のような極端な意見はともかく,フォントやプ...
- 確かに,Rで図を作成する際は,可能な限りラベルやプロット...
- Macに限らずLinuxでもそうですが、ベクター型のグラフィッ...
- ちなみに,Macなら,PDFで出力して貼り付けるほうがきれい...
- pptにPDFインポートできるとは知らなかった・・・。keynote...
- とどめというか,pdf 関数の引数の family, fonts をよく調...
- epsをtextediterで直接編集という手もありますね。玄人向け...
- ベクター型のグラフィック出力というと、SVG出力で Inks...
- inkscapeですよね。RSvgDeviceパッケージでdevSVG("***")で...
- 結局,質問者は,何をどうしたかったんでしょうねえ(何の...
- RのグラフをPower point上で変更したかったのですが、事前...
**同じ要素を持つ行を選択するには [#k1a186c7]
>[[ななし]] (2007-08-08 (水) 01:14:02)~
~
次のようなデータがあったとき~
> x <- matrix(c("a","b","c","c","e","d","a","c","c","c",...
> x <- data.frame(x)
> x
X1 X2 X3
1 a b c
2 c e d
3 a c c
4 c c c
X1が等しくかつX3が等しい行を選択したい(この場合は1行と3...
> which( x[,1]==x[,1] & x[,3]==x[,3])
[1] 1 2 3 4
や~
> x[,4] <- 1:nrow(x) #自分と同じ行を除けばいけるかも…
> which( x[,4]!=x[,4] & x[,1]==x[,1] & x[,3]==x[,3])
integer(0)
や~
> which(duplicated(x[,1]) & duplicated(x[,3]))
[1] 3 4
では(当然ながら)意図する結果を得られませんでした。~
~
単純にforで1行ずつ回すしか無いのでしょうか?~
//
- x[is.element(x[,1], x[,3]),] でどうでしょう -- [[aa]] &...
- ありがとうございます。ですがこれは偶然一致しただけです...
> x <- matrix(c("a","b","f","c","e","d","a","c","f","c",...
> x <- data.frame(x)
> x
X1 X2 X3
1 a b f
2 c e d
3 a c f
4 c c f
でも同じなのですがx[is.element(x[,1], x[,3]),]ではうまく...
- この場合 is.element(x[,1],x[,3]) は "a","c","a","c" の...
> y <- outer(x[,1], x[,1], FUN="==") * outer(x[,3], x[,3...
> diag(y) <- 0
> y
[,1] [,2] [,3] [,4]
[1,] 0 0 1 0
[2,] 0 0 0 0
[3,] 1 0 0 0
[4,] 0 0 0 0
> which(y == 1, arr.ind=TRUE)
row col
[1,] 3 1 # 1,3 が求める行という意味
[2,] 1 3 # 重複するのが目障りだが
- 重複が目障りというなら diag(y) <- 0 のかわりに,y[upper...
- なるほど外積を使うのですね。条件が三つになったときも外...
- 外積を使うプログラムの計算所要時間はデータフレームの行...
y <- paste(x[,1], x[,3], sep="@") # sep の設定には注意
z <- y %in% names(table(y))[table(y)>1]
x[z,]
一回の処理に要する秒数
行数 外積法 別解
1 4 0.002 0.001
2 8 0.001 0.001
3 16 0.001 0.000
4 32 0.001 0.001
5 64 0.004 0.001
6 128 0.009 0.001
7 256 0.030 0.001
8 512 0.346 0.001
9 1024 1.075 0.002
10 2048 3.931 0.003
11 4096 13.471 0.005
- いったん行を一つの文字列にして比較するわけですね。あり...
- 既に賞味期限切れだが。複数変数を連結して一文字にすると...
> set.seed(1);x <- paste(sample(letters[1:5],3e4,1), sam...
> df <- data.frame(a=x[1:1e4], b=x[(1e4+1):2e4], c=x[(2e...
> y <- paste(df[,1],df[,2],df[,3],sep="`") # 3変数を連結
> y[y %in% setdiff(y, y[duplicated(y)])] <- NA # 一回し...
> y <- as.factor(y) # 因子化
> levels(y) <- 1:nlevels(y) # 水準を変更(NA値は保存され...
> y[1:20]
[1] <NA> <NA> <NA> <NA> <NA> <NA> 1855 1694 <NA> <NA> 5...
[16] <NA> 1599 <NA> 838 <NA>
2148 Levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1...
> which(y==3) # ID番号が3である行番号
[1] 910 1105 7367
> df[which(y==3),] # チェック
a b c
910 aa aa eb
1105 aa aa eb
7367 aa aa eb
> system.time({y <- paste(df[,1],df[,2],df[,3],sep="`");
y[y %in% setdiff(y, y[duplicated(y)])] <-...
y <- as.factor(y); levels(y) <- 1:nlevels...
ユーザ システム 経過
0.020 0.004 0.026
**データハンドリング 縦横変換 [#ad9c6d9e]
>[[蔵正]] (2007-08-07 (火) 09:56:23)~
~
Aのデータを読み込み、Bのようにデータ変換したいのですが、...
~
A--------------------------------------------------------...
PATNO VISIT SUBSCALE QUESTION RESP~
1103 Baseline Total Score 99 0.571428571~
1103 Month 1 Total Score 99 1.214285714~
1103 Month 6 Total Score 99 1.4~
1103 Month 9 Total Score 99 0.547619048~
1104 Baseline Total Score 99 2.048780488~
1104 Month 1 Total Score 99 1.095238095~
1104 Month 3 Total Score 99 1~
1104 Month 6 Total Score 99 0.904761905~
1104 Month 9 Total Score 99 0.880952381~
1105 Baseline Total Score 99 1.571428571~
1105 Month 1 Total Score 99 1.666666667~
1105 Month 3 Total Score 99 0.976190476~
1105 Month 6 Total Score 99 0.928571429~
1105 Month 9 Total Score 99 1.023809524~
:~
~
B--------------------------------------------------------...
PATNO Baseline Month 1 Month 3 Month 6 Month 9~
1103 0.571428571 1.214285714 1.142857143 1.4 0.547619048~
1104 2.048780488 1.095238095 1 0.904761905 0.880952381~
1105 1.571428571 1.666666667 0.976190476 0.928571429 1.02...
:~
//
- [[reshapeでピボットテーブル]]を見よ。その他reshape関数...
- その前にこのデータはかなり不規則ですから、整形しないと...
- 整形するくらいなら,readLines で読んで splitchar や gre...
ただし,データの規則を十分に把握していないとプログラムで...
Baseline と Month 1,Month 3,Month 6,Month 9 で欠測値もあ...
- xtabsではだめでしょうか?たしかrjpwikiのどこかでピポッ...
- なるほどね。テキストエディタなんかを使ってデータを全文...
PATNO VISIT RESP
1103 Baseline 0.571428571
1103 Month1 1.214285714
1103 Month6 1.4
1103 Month9 0.547619048
1104 Baseline 2.048780488
1104 Month1 1.095238095
1104 Month3 1
1104 Month6 0.904761905
1104 Month9 0.880952381
1105 Baseline 1.571428571
1105 Month1 1.666666667
1105 Month3 0.976190476
1105 Month6 0.928571429
1105 Month9 1.023809524
そのあとデータフレーム(df とでも)に読んで,
> ( ans <- xtabs(RESP~PATNO+VISIT, df) )
VISIT
PATNO Baseline Month1 Month3 Month6 Month9
1103 0.5714286 1.2142857 0.0000000 1.4000000 0.5476190
1104 2.0487805 1.0952381 1.0000000 0.9047619 0.8809524
1105 1.5714286 1.6666667 0.9761905 0.9285714 1.0238095
PATNO=1103 の Month3 は実際は欠測値なんだけど 0 が入って...
> ans[ans==0] <- NA
> class(ans) <- "matrix"
> ans
VISIT
PATNO Baseline Month1 Month3 Month6 Month9
1103 0.5714286 1.214286 NA 1.4000000 0.5476190
1104 2.0487805 1.095238 1.0000000 0.9047619 0.8809524
1105 1.5714286 1.666667 0.9761905 0.9285714 1.0238095
attr(,"call")
xtabs(formula = RESP ~ PATNO + VISIT)
- xtabでももちろんできます。私も以前はxtabを使ってました...
**バックスラッシュを置換できますか? [#h598582f]
>[[ぼう]] (2007-08-06 (月) 16:51:00)~
~
winのファイルパス名が入ったテキストをいじる際、バックスラ...
~
> x <- "aa?bb??cc"
> gsub("????", "/", x)
[1] "aa?bb/cc" #本当は"aa/bb??cc"としたい
//
- ¥b は二文字ではなく一文字なんだから,¥とはマッチしな...
- Rでは¥t(Tab)¥n(Return)のような使い方をしますので、上...
- なるほど、次の文字に対してかかってしまい?bなどとなって...
**中央値でソートして箱ヒゲ図を表示するには [#o5779313]
>[[sh]] (2007-08-04 (土) 13:43:20)~
~
グループの中央値でソートしての箱ヒゲ図を表示するにはどう...
boxplot(count ~ spray, data = InsectSprays, col = "light...
boxplot(decrease ~ treatment, data = OrchardSprays, log ...
# 1を2のように表示したい
//
- count ~ spray というモデル式は因子 spray の水準の順に箱...
> attach(InsectSprays)
> spray2 <- reorder(spray, count, median)
> spray
[1] A A A A A A A A A A A A B B B B B B B B B B B B C C...
[39] D D D D D D D D D D E E E E E E E E E E E E F F F F...
Levels: A B C D E F # 最初の水準の並び
> spray2
[1] A A A A A A A A A A A A B B B B B B B B B B B B C C...
[39] D D D D D D D D D D E E E E E E E E E E E E F F F F...
attr(,"scores")
A B C D E F
14.0 16.5 1.5 5.0 3.0 15.0
Levels: C E D A F B # count の中央値によって...
> boxplot(count ~ spray2, col = "lightgray")
# 一行で書けば
> boxplot(count ~ reorder(spray, count, median), data = ...
# 逆順にソートするなら、count を -count にするトリックで
> boxplot(count ~ reorder(spray, -count, median), data =...
- ありがとうございました。大変勉強になりました -- [[sh]] ...
- 新たなオブジェクトを作るのは,ときとして考え物。at 引数...
attach(InsectSprays) # 当然と思って省略したが。。。
boxplot(count ~ spray, data = InsectSprays, col = "light...
- 正しくは(あらかじめ attach(InsectSprays) を実行していな...
boxplot(count ~ spray, data = InsectSprays, col = "light...
at=rank(by(InsectSprays$count, InsectSprays$spra...
- attach(InsectSprays) したなら data 引数は冗長。 -- &n...
**降順のソート関数 [#n740fea3]
>[[*]] (2007-07-31 (火) 09:10:01)~
~
降順のソートの関数はあるのでしょうか?~
探しているんですが昇順しか見当たりません。~
探し不足かもしれませんが、よければ回答お願いします。~
//
- help(sort)と入力しましたか? decreasingでは不十分なケー...
- rev(sort(x)) でも可。 -- &new{2007-07-31 (火) 13:01:27};
- 回答ありがとうございます。実行することが出来、とても助...
**関数の出力を表示させない [#rcd7e0df]
>[[RYUI]] (2007-07-30 (月) 16:37:13)~
~
Rのバージョンは2.5.1です.~
非計量多次元尺度構成法を行っているのですが,そこで次元数P...
library(MASS) # isoMDS関数を使用するため
#類似度データ
ruijiData <- data.frame(
c(0,1,5,3),
c(1,0,2,4),
c(5,2,0,5),
c(3,4,5,0)
)
#次元数とストレスのプロット関数
plot.mds.stress <- function(data) {
stress <- NULL
for(i in 1:c(nrow(data)-1)) {
mds <- invisible(isoMDS(dist(data),k=i))
ps <- c(i,mds$stress)
stress <- rbind(stress, ps)
}
plot(stress,main="ストレスのプロット",xlab="次元数 P",...
}
plot.mds.stress(ruijiData)
を実行すると,図と以下の(isoMDS関数による)出力が得られ...
initial value 13.343941
iter 5 value 0.313496
final value 0.006694
converged
initial value 0.000000
final value 0.000000
converged
initial value 0.000000
final value 0.000000
converged
ここで,上記の出力が表示されないようにしたいのですが,inv...
どのようにしたら,出力を消すことができるのでしょうか? よ...
//
- 出力させないと言うだけなら,for の前に sink("適当なファ...
- 上の出力はおそらく optim() 関数の経過出力で、本当に収束...
> res <- optim(sq, distance, genseq, method="SANN",
+ control = list(maxit=6000, temp=2000, trace=TRUE))
sann objective function values
initial value 29625.000000
iter 1000 value 14815.000000
iter 2000 value 14815.000000
iter 3000 value 14815.000000
iter 4000 value 13541.000000
iter 5000 value 13482.000000
iter 5999 value 13323.000000
final value 13323.000000
sann stopped after 5999 iterations
> sink("all.Rout") # ファイル名は適当
# 以下全てのコンソー...
> res <- optim(sq, distance, genseq, method="SANN",
+ control = list(maxit=6000, temp=2000, trace=TRUE))
# 何も出力されない...
> sink() # sink 関数による...
> res
$par
[1] 1 19 16 8 13 15 2 9 12 14 5 18 4 3 11 7 20 ...
$value
[1] 12919
$counts
function gradient
6000 NA
$convergence
[1] 0
$message
NULL
- 別解:capture.output を使う。簡単にするためにシュガーコ...
plot.mds.stress2 <- function(data) junk <- capture.outpu...
plot.mds.stress2(ruijiData)
- やはり収束の善し悪しを見ないで結果(プロット)だけ得る...
- 収束の善し悪しをプログラムで判定して(上のプログラムで...
- help を良く読みましょう!trace という引数があるでしょう...
mds <- isoMDS(dist(data),k=i, trace=FALSE)
ヘルプに曰く,
Side Effects
If trace is true, the initial stress and the current str...
every 5 iterations.
- 皆様,お返事が遅れ大変申し訳ございません.皆様の回答に...
**3次元グラフで座標値に文字列ラベルをつける方法 [#w0620e41]
>[[niko]] (2007-07-27 (金) 15:41:34)~
~
scatterplot3dを使って3次元グラフを作成しています.~
グラフ中に表示される座標値に文字列ラベルをつける方法を探...
2次元グラフの場合は~
plot(ai.i$points, type="n")
text(ai.i$points, labels=rownames(ai.i$points))
としていたのですが,3次元グラフ(scatterplot3d)での方法を...
どなたかご教示いただけないでしょうか.~
//
- scatterplot3d が返す,xyz.convert function which conve...
d <- structure(c(-4L, 1L, -8L, 4L, -3L, 10L, 15L, 11L, -...
-3L, -11L, -9L, 11L, 4L, 0L, 6L, 14L, -...
0L, -8L, -9L, 12L, -5L, -3L, 16L, 5L, -...
.Dim = c(10L, 3L))
obj <- scatterplot3d(d)
text(obj$xyz.convert(d), labels=LETTERS[1:10], pos=4)
#ref(scatterplot3d-example.png)
- ありがとございます!xyz.convert() を使うんですね.希望...
**barplotの凡例の順序について [#m7b7c860]
>[[K]] (2007-07-24 (火) 16:15:10)~
~
以下のようなスクリプトで、下図のヒストグラムを作りました。~
~
x <- c( 4, 6, 8,10,12,14,16,18,20,22,24,26,28,30,32...
remain<- c( 8, 3, 7, 5, 4, 3, 5, 3, 4, 0, 2, 2, 3, 1, 1...
fell <- c( 5, 2, 5, 3, 3, 2, 4, 2, 3, 0, 1, 1, 2, 1, 1...
dead <- c( 3, 1, 1, 1, 2, 3, 1, 1, 1, 0, 1, 1, 2, 1, 0...
DBH_dist <- function(x, remain, fell, dead, title, xlabe...
par(ps=20)
par(mar=c(5,5,3,3))
dummy <- x * 0
sum <- matrix(rbind(remain, fell, dummy),nrow=3, le...
yrange <- c(-max(dead)-10, max(remain + fell) + 10)
par(new=F)
barplot(-dead, names.arg=x, ylim=yrange, col = "gray"...
par(new=T)
barplot(sum, ylim = yrange, col = c("black","white","...
axes=F, ann=F, legend=c( "残存木","伐採木", "...
}
title = "テスト用のダミーデータ"
xlabel="DBH"; ylabel="直径階別本数分布(本/plot)"
DBH_dist(x, remain, fell, dead, title, xlabel, ylabel)
~
#ref(Kuni_070724.png)~
できれば凡例を上から順に「伐採木」「残存木」「枯損木」の...
legendのヘルプを見てもよく分かりません。どのようにすれば...
//
- どこに問題点が存在するのか分からないのですが,2つめのba...
barplot 関数の legend 引数は,そのグラフに書かれた以外の...
barplot(sum, ylim = yrange, col = c("black","white"), ...
legend("topright", c("伐採木", "残存木", "枯損木" ), f...
- 早速のコメント、ありがとうございます。barplotのlegend引...
**モード/最頻値 [#hcaababb]
>[[とくめい]] (2007-07-23 (月) 17:43:33)~
~
Rはsummary関数でmedianとmeanを出してくれますが、modeは出...
modeを計算する関数はあるのでしょうか?~
//
- google などで検索しましたか? http://cran.r-project.org...
- 離散値データなら例えば次のようにする。 -- &new{2007-07...
> x # 数値データの場合
[1] 1 1 2 5 6 3 5 10 10 10 1 2 3 3 5 5 7...
[26] 8 6 6 9 10 1 3 2 7 5 4 7 5 8 10 4 1...
[51] 1 4 3 5 4 5 9 6 8 10 1 1 2 0 4 5 5...
[76] 7 8 8 10 10 1 1 1 5 5 7 6 9 10 10 1 3...
> (y <- table(x)) # 度数分布表
x
0 1 2 3 4 5 6 7 8 9 10
2 15 5 10 6 16 7 9 11 5 14
> names(y)
[1] "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "...
> names(y)[y == max(y)] # モード
[1] "5"
> as.numeric(names(y)[y == max(y)]) # 数値が欲しければ
[1] 5
> x # 文字列データの場合
[1] "x" "w" "w" "j" "c" "n" "x" "r" "r" "e" "n" "i" "v...
[19] "v" "v" "p" "q" "s" "h" "v" "o" "n" "w" "d" "o" "l...
[37] "j" "f" "l" "m" "o" "g" "n" "e" "x" "o" "d" "j" "s...
[55] "c" "v" "i" "q" "n" "x" "m" "r" "f" "r" "d" "h" "u...
[73] "o" "c" "j" "d" "j" "n" "p" "f" "m" "e" "g" "y" "c...
[91] "v" "g" "s" "n" "b" "s" "h" "x" "z" "y"
> ( y <- table(x) ) # 度数分布表
x
b c d e f g h i j k l m n o p q r s t u v w x y z
1 7 4 4 3 5 6 2 5 3 3 4 8 5 3 2 4 7 1 2 8 3 6 3 1
> names(y)
[1] "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n"...
[20] "u" "v" "w" "x" "y" "z"
> names(y)[y == max(y)] # モード
[1] "n" "v"
- 定義できない(前述の定義では不定になる)場合があること...
**Rmapのインストール [#fc0c3b89]
>[[内田 直樹]] (2007-07-20 (金) 17:25:44)~
~
Rmap_1.1.0zipをインストールしましたがRのversion2.4.1では”...
//
- RTools を使ってソースよりビルドかな?maptools や sp パ...
- ありがとうございました。谷村先生の論文を読んでみます。 ...
- [[初級Q&A アーカイブ(6)]]「Rmapのインストールについ...
**barplotによるヒストグラムの作成方法について [#a0d7cc82]
>[[K]] (2007-07-19 (木) 17:07:04)~
~
Rで以下のようなヒストグラムを作りたいのですが、思うように...
#ref(Kuni_070719.png)~
barplotを使ってやろうとしているのですが、helpをみても見当...
barの幅を0.4にして、間伐前と後のbarの位置をそれぞれ元の位...
±0.25にしてやればできそうな気がするのですが、barplotのパ...
width = rep(0.4, length(x)) と書き加えても何も変わらない...
こんなイレギュラーなグラフは無理かなぁ、と思う一方、Rなら...
どなたかお知恵を貸して下さい。よろしくお願いします。~
以下が現状のスクリプトです。~
# barplot03.R
#直径階別本数分布を、間伐前と間伐後を上向きに並べて、枯...
x <- c(4,6,8,10,12,14,16,18,20,22,24,26,28,30,32) ...
N0 <- c(3,0,1, 0, 2, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) #...
L0 <- c(2,0,3, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1) #広...
N1 <- c(8,0,7, 5, 4, 0, 0, 3, 0, 1, 0, 2, 0, 0, 1) ...
L1 <- c(2,0,4, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1) ...
N2 <- c(6,0,5, 3, 3, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0) ...
L2 <- c(1,0,3, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1) ...
sum0 <- N0+L0; sum1 <- N1+L1; sum2 <- N2+L2
before <- matrix(rbind(N1, L1),2, length(x))
after <- matrix(rbind(N2, L2),2, length(x))
koson <- matrix(rbind(N0, L0),2, length(x))
par(ps=20)
par(mar=c(5,5,3,3))
xlabel="DBH"; ylabel="直径階別本数分布(本/plot)"
title = "テスト"
yrange = c(-max(sum0)-1, max(sum1)+1)
par(new=F)
barplot(before, width = rep(0.5, length(x)), space = NUL...
axis.lty=1, xlab="", ylab="", main="")
par(new=T)
barplot(-koson, names.arg=x, ylim=yrange,
axes = F, xlab=xlabel, ylab=ylabel, main=title)
//
- こんな感じで。 -- [[takahashi]] &new{2007-07-19 (木) 17...
upper<-matrix(rbind(before,after),nrow=2)
yrange<-c(-max(sum0)-1, max(sum1)+1)
xlim<-c(0,7*ncol(upper)/2)
barplot(upper, width = 2, space = c(1,0.5), xlim=xlim ,...
par(new=T)
barplot(-koson, names.arg=x, width=5, space=2/5, xlim=x...
- 期待していたグラフが描けました。どうもありがとうござい...
**データフレームの列の(範囲)指定 [#h856c794]
>[[PC初心者]] (2007-07-19 (木) 04:00:45)~
~
初心者です.(WindowsXP,R-2.5.1)~
以下のサンプルデータ("sitsumon")があるとします.
q1 <- c("F","M","M")
q2_1 <- c(60,70,75)
q2_2 <- c(70,75,70)
q2_3 <- c(90,95,80)
q3 <- c(1,0,0)
q4 <- c(3,4,5)
sitsumon <- data.frame(q1=q1, q2_1=q2_1, q2_2=q2_2, q2_3...
(*ここで,実際には,より多くのデータ数(行数)と質問の...
~
実際に分析する際は,"q2_1"と"q2_2","q2_3","q3"のみを使...
UFO <- sitsumon[,2:5]
とすればよいのですが,実際には,列数が多い(100くらい)ので...
また,抜き出す列数も実際には,もっと多いですので,
UFO <- sitsumon[ ,c("q2_1","q2_2","q2_3","q3")]
というのも避けたいです.~
~
したがって,
UFO <- sitsumon[,"q2_1":"q3"]
のような感じで,2列目("q2_1")〜5列目("q3")を抜き出したい...
~
そこで,皆様にご教授お願いしたいのが,「列名」からそれが...
(できればOS(プラットフォーム)などに依存しないようなやり...
愚直な質問ではございますが,ご教授くだされば幸いです.~
//
- help(subset) してみる(特にその example を見る)。 -- ...
> x <- data.frame(a=1:3, b=1:3, c=1:3)
> colnames(x)
[1] "a" "b" "c"
> which(colnames(x)=="a")
[1] 1
> which(colnames(x)=="b")
[1] 2
- subset(sitsumon,se=q2_1:q3) -- [[takahashi]] &new{2007-...
- 普通はsubsetです。ラベル名の場所を知りたいならcharmatch...
- grep("q4", colnames(sitsumon))とか[[正規表現:http://www...
- お返事が遅れてしまい,申し訳ございません.丁寧に回答し...
**ベイズ−BUGSでのM−Hアルゴリズムの実行 [#a37cbfdb]
>[[azu]] (2007-07-18 (水) 23:31:51)~
~
ベイズでM-Hアルゴリズムを実行したい場合、~
BUGSで動かすことは可能なのでしょうか?~
BUGSの名前から考えるとできなさそうなのですが・・・・~
M-Hアルゴリズムを動かすソフトウェアがあれば、~
教えてください。~
お願いします。~
//
- 何を質問しているのか、訳が分かりません。もっと、具体的...
- 申し訳ないです。私の環境はWinですが、どんな環境をお...
- google でキーワード "Bayes BUGS M-H" で検索してみれば...
- すいぶん遅いレスですが、Metropolis-Hastings法はたしかwi...
**spgrass6のインストールが出来ません_ubuntu7.04 [#i59255c5]
>[[しまだ]] (2007-07-18 (水) 20:40:33)~
~
どなたか教えてください。~
linux超初心者です。grassとRを使いたくて、ubuntu-7.04をセ...
ubuntu:7.04~
grassのバージョン:6.2.1~
Rのバージョン:2.4.1~
R version 2.4.1 (2006-12-18)~
i486-pc-linux-gnu~
ところが、install.packages("spgrass6")を実行すると、~
下記のようなメッセージがでてspgrass6とrgdalをインストール...
spやmaptoolsは、r-base-devを入れたら、無事インストールで...
どなたかアドバイスをいただけないでしょうか。
install.packages("spgrass6") 中で警告がありました:
argument 'lib' is missing: using /usr/local/lib/R/sit...
--- Please select a CRAN mirror for use in this session ...
Loading Tcl/Tk interface ... done
* Installing *source* package 'spgrass6' ...
** R
** inst
** preparing package for lazy loading
Loading required package: sp
Loading required package: maptools
Loading required package: foreign
Error: package 'rgdal' required by 'spgrass6' could not ...
Execution halted
ERROR: lazy loading failed for package 'spgrass6'
** Removing '/usr/local/lib/R/site-library/spgrass6'
The downloaded packages are in
/tmp/RtmpQLX6fo/downloaded_packages
Warning message:
installation of package 'spgrass6' had non-zero exit sta...
in: install.packages ("spgrass6")
//
- spgrass6 をインストールする前に rgdal をインストールせ...
- ありがとうございます。早速やってみましたが、同様のメッ...
install.packages("rgdal_0.5-13.tar.gz","/usr/lib/R/lib",...
WARNING: invalid package 'rgdal_0.5-13.tar.gz'
ERROR: no packages specified
Warning message:
installation of package 'rgdal_0.5-13.tar.gz' had non-ze...
install.packages("rgdal_0.5-13.tar.gz", "/usr/lib/R/li...
- rgdal パッケージは R から GDAL ライブラリにアクセスす...
rgdal: Bindings for the Geospatial Data Abstraction Libr...
Provides bindings to Frank Warmerdam's Geospatial Data A...
(GDAL) (>= 1.3.1) and access to projection/transformatio...
the PROJ.4 library. The GDAL and PROJ.4 libraries are ex...
and, when installing the package from source, must be co...
Both GDAL raster and OGR vector map data can be imported...
data and OGR vector data exported. Use is made of classe...
- ありがとうございました.助言のおかげでバラバラに得てい...
- 確認しました。ありがとうございました。さきほど無事イン...
長年(本当に長かった)の懸案がようやく解決しました。~
Rjpwikiに投稿して本当によかったです。-- [[しまだ]] &new{2...
# apt-get install gdal-bin
# apt-get install libgdal1-dev
# apt-get install proj
# (rgdal_0.5-13.tar.gzをダウンロード)
# sudo R CMD INSTALL rgdal_0.5-13.tar.gz
# ---Rを起動---
# install.packages("spgrass6")
- よかったですね。お役に立てて何よりです(自分で確かめも...
**boxplotの目盛りと外れ値 [#w18c4f5a]
>[[sh]] (2007-07-15 (日) 11:10:40)~
~
boxplot(c(0.1, 1:100, 1000), log="y") で、boxplotのy軸目...
//
- 以下のようになさったらいかが。~
外れ値は、第1四分位数-1.5×四分範囲」より小さいデータと,...
boxplot(c(0.1, 1:100, 1000), log="y", axes=FALSE, frame....
y <- 10^(-1:3) # 適切に設定(データから決定できるように...
axis(2, at=y, label=as.character(y))
- こちらも検索不足。初心者コースの履歴にどちらも質問&回答...
- 軸の目盛りをどうするかということで、axis の使い方に関す...
- 解決しました。ありがとうございました。 -- [[sh]] &new{2...
- 単に、「解決しました」の報告だけではなく、色々付いたコ...
- コメントです。『外れ値は、第1四分位数-1.5×四分範囲」よ...
- 何でも教えてもらえばいいというものではない.箱ヒゲ図の...
- 追加の情報.[[青木繁伸先生のページ:http://aoki2.si.gunm...
- 「縦軸に変数値をとって,第1四分位を下に,第3四分位を上に...
- http://aoki2.si.gunma-u.ac.jp/lecture/Dosuu/box-and-whi...
- > barplotのx軸、y軸の目盛りの値を(関数histのcounts、mi...
online help の value の項を見れば分かるように(あるいは,...
- > 『# 適切に設定(データから決定できるようにするとよい...
まず,何をもって適切とするかを決めないといけないがそれは...
18:14:05};
x <- c(0.1, 1:100, 1000)
boxplot(x, log="y", axes=FALSE, frame.plot=TRUE)
minx <- floor(log10(min(x))) # 与えられた x だと,minx ...
maxx <- ceiling(log10(max(x))) # 与えられた x だと,maxx...
y <- 10^(minx:maxx) # y は,c(0.1, 1, 10, 100, 1000)
axis(2, at=y, label=as.character(y))
- 更に一般的と言うことになると,ちょっと時間が必要だった...
log.ax <- function(x) { # データの範囲を押さえる対数目盛り
minx <- log10(min(x))
maxx <- log10(max(x))
y <- 10^(log10(1:9)+rep(floor(minx):ceiling(maxx), each...
l <- y >= 10^minx & y <= 10^maxx
minl <- min(which(l == TRUE))
if (minl > 1) l[minl-1] <- TRUE
return(y[l])
}
############ 使用例
x <- c(0.31, 2, 5, 40, 100, 1000, 5100)
y <- log.ax(x)
boxplot(x, log="y", axes=FALSE, frame.plot=TRUE)
axis(2, at=y, label=as.character(y))
- ああ・・・私自身も検索不足でしたね。「適切に設定」の具...
**バイナリデータの扱い方について [#tb24241e]
>[[YURI]] (2007-07-14 (土) 14:43:14)~
~
初心者です。バイナリデータの扱い方が良く分りません。~
バイナリファイルから読み込んだデータを4バイト単位にまとめ...
> f <- file('/tmp/a.out', open='rb')
> a <- readBin(f, what='raw', n=40)
> a
[1] 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 02 0...
[26] 82 04 08 34 00 00 00 50 1d 00 00 00 00 00 00
> matrix(a, ncol=4)
> dump("a", file="/tmp/a.R")
> system('cat /tmp/a.R')
"a" <-
c(7f, 45, 4c, 46, 01, 01, 01, 00, 00, 00, 00, 00, 00, 00...
00, 02, 00, 03, 00, 01, 00, 00, 00, 90, 82, 04, 08, 34, ...
00, 50, 1d, 00, 00, 00, 00, 00, 00)
> source('/tmp/a.R')
Error in parse(file, n = -1, NULL, "?") : syntax error o...
> dput(a)
c(7f, 45, 4c, 46, 01, 01, 01, 00, 00, 00, 00, 00, 00, 00...
00, 02, 00, 03, 00, 01, 00, 00, 00, 90, 82, 04, 08, 34, ...
00, 50, 1d, 00, 00, 00, 00, 00, 00)
matrixの結果は何も表示されません。what="raw"で読み込んだ...
matrixは使えない(1要素のサイズが分らないので?)ということ...
また、dumpしたものがsourceで読み込めないのも、こういうも...
結局、"rawデータ"というものは、どのように使えるデータなの...
//
- すみません、整形に失敗しましたが、編集の仕方が分からず...
- どのように使いたいのかわからないが,readBin に対応する...
- もう少し勉強してみます。~私がmatrixで結果が表示されなか...
ありがとうございました。 -- [[YURI]] &new{2007-07-14 (土)...
- 説明不足だったかもしれませんが、readBinを使ったのは、簡...
- 「バージョンが古かった」ってことですか。解決したなら良...
- dump して source で読もうとしたわけですわな。確かに、普...
- すみません、まだ投稿法に慣れず、コメント入力の途中で投...
**散布図を右90度回転 [#j13a4186]
>[[ssk]] (2007-07-13 (金) 07:02:13)~
~
plotで右90度回転させた散布図を書くためにはどうすればよろ...
boxplotやbarplotのようにオプションを指定して簡単にできな...
boxplot(1:10, horizontal=T)
barplot(1:10, horiz=T)
plot(1:10, horiz=T) # Warning messages:
環境:R version 2.5.0 (2007-04-23) i386-apple-darwin8.9.1 ~
参考:「2変量散布図とヒストグラム図」「クラスター図を横向...
//
- 形式的に回転するとy軸(元のx軸)の目盛が降順になってし...
- 「boxplotやbarplotのようにオプションを指定して簡単にで...
存在しないオプションを指定しても,エラーになるだけ~
どういう意図があって,どんな散布図が欲しいのか,上の人の...
plot(y, x) なんてことには考えがおよばなかったと言うことな...
速やかなる返答を求む。 -- &new{2007-07-13 (金) 17:04:43};
- >速やかなる返答を求む。...たかだか8時間程度で,そんな...
- 普段は一週間に一回見るか見ないかのような人でも、自分が...
- こんな感じでしょうか?
x <- 1:10
y <- 20:11
plot(x,y) #普通のplot()
plot(y,x) #xとyが入れ替わっている->これだと、y軸の場所が...
plot(y,x,xaxt="n", xlab="") #y軸の表示をOFFにして
axis(side=3, at=y) #y軸を上に持ってきて
mtext(text="y", outer=F, line=3) #ylabもmtextで追記する
mainの引数もmtext()で自由になります -- &new{2007-07-14 (...
- at=y は,へんじゃない? -- &new{2007-07-14 (土) 12:11:...
- > たかだか8時間程度で,そんなことを言わなくても~
さらに時間が経ちました。答えは必要じゃないということか、...
- アドバイスありがとうございます。返事が遅くなり申し訳ご...
def.par <;- par(no.readonly = TRUE) # save default, for ...
x <- round(rlnorm(100)+1)
y <- round(rlnorm(100)+1)
xhist <- hist(x, breaks=seq(0.5,max(x)+0.5,1), plot=FALSE)
yhist <- hist(y, breaks=seq(0.5,max(x)+0.5,1), plot=FALSE)
nf <- layout(matrix(c(2,0,1,3),2,2,byrow=TRUE), c(3,1), ...
layout.show(nf)
par(mar=c(3,3,1,1))
plot(x, y, log="xy")
par(mar=c(0,3,1,1))
plot(xhist$mids, xhist$counts,type="h",log="x",xaxt="n")
par(mar=c(3,0,1,1))
plot(yhist$mids, yhist$counts,type="h",log="x",xaxt="n")...
par(def.par)#- reset to default
- 以下のようにすればいかが -- &new{2007-07-15 (日) 11:19...
# 最初の plot
plot(x, y, log="xy", ylim=exp(range(log(y))))
# 三番目の plot を以下の2行に
plot(yhist$counts,yhist$mids, type="n",log="y",yaxt="n",...
junk <- sapply(1:length(yhist$counts), function(i) lines...
rep(yhist$mids[i], 2)))
#ref(plot999.png)
- だとしたら、sskさんの検索不足、このページの下に同じ「2...
- 全ての可能性を検索するのも大変だし、下の方のは barplot ...
- 三番目のplotの凡例を描画するにはどうすればよろしいでし...
legend(max(x), max(y), legend="(1)", box.lty=0) # 一番目...
legend(max(xhist$mids), max(xhist$counts), legend="(2)",...
legend(max(yhist$mids), max(yhist$counts), legend="(3)",...
legend(max(yhist$counts), max(yhist$mids), legend="(3)",...
- legend(locator(1), legend="(3)", box.lty=0) # [[関数 lo...
- 各 legend は,plot の直後に書くんですね。legend の第1引...
第一引数に "topright" などと書いて描いてみるのも一法かと。~
そのほかに指定できるのは,"bottomright", "bottom", "botto...
この例もまた,「ヘルプを良く読むべし」ですね。 -- &new{2...
**メタファイルからビットマップファイルへの変更って? [#ka...
>[[チョメスケ]] (2007-07-12 (木) 15:47:06)~
~
最近,Rの勉強を始めたばかりの素人です。質問内容はごく簡単...
~
質問内容:MCMCpackのMCMCregressを実行しました。独立変数が...
いろいろと試行錯誤してみたのですが,できませんでした。も...
よろしくお願いいたします。~
//
- メニューから保存するのではなくて,直接ファイルへ書き出...
- ?bmpしてみればいいと思いますが、例えばこんな感じのを応...
x <- matrix(runif(10),nrow=5)
png()
image(x)
dev.off()
winなら普通にワーキングディレクトリに出ますよ。
あえて、メタファイルの画像ならばirfanviewやVIXなどフリー...
- あなたが言っている「MCMCregressを実行しました」はMCMCpa...
- ご返答いただいた皆様,ありがとうございます。 -- [[チョ...
- 実際に,実行したコードならびに実行環境をご説明させてい...
line<-list(df$y,df$x1,df$x2,df$x3,df$x4)
posterior<-MCMCregress(y~x1+x2+x3+x4,data=df2,verbose=20...
plot(posterior)
raftery.diag(posterior)
summary(posterior)
なお,Rは2.5です。 -- [[チョメスケ]] &new{2007-07-16 (月)...
- 解決いたしました!実はとっても単純な話でございました。...
**barplotの横軸目盛り [#jfc78816]
>[[K]] (2007-07-12 (木) 06:37:14)~
~
barplotについての質問です。
x <- c(4,6,8,10,12,14,16,18,20,22,24,26,28,30,32)
Grp1 <- c(8,0,7, 5, 4, 0, 0, 3, 0, 1, 0, 2, 0, 0, 1)
Grp2 <- c(2,0,4, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1)
Grp3 <- c(3,0,2, 0, 2, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
y <- matrix(rbind(Grp1, Grp2, Grp3),3,length(x))
barplot(y, xlab="DBH")
として、下図を作図しました。このbarplotの横軸にベクトルx...
~
#ref(Kuni_barplot.png)
//
- 回答は axis(1,at=1:length(x)*1.2-0.5, labels=x) ~
ただし、1.2 と 0.5 と言う数値については、!is.matrix(heigh...
#ref(barplot2.png)
- ax<-barplot(y, xlab="DBH");axis(1,ax,x) -- [[takahashi]...
- takahashi様の回答の方がシンプルに同じ結果が得られますね...
- barplotの引数namesを使って、一行で書くこともできます。>...
- 原質問文を読むと確かに「横軸にベクトルxの値を目盛りとし...
- で,ヘルプを隅から隅まで読むと,barplot(y, names.arg=x,...
- 本当だ、helpを読むとnames.argやaxis.ltyのところにちゃん...
**時系列データ処理の高速化の仕方について [#ua9ac45b]
>[[蓮]] (2007-07-11 (水) 22:33:30)~
~
アーカイブの(6)にも似たような内容がありまして恐縮です...
~
データ:2分間隔で測定した1年分のデータ、50箇所分。~
目的 :週毎に平均した1日の変動の値を算出する。~
(0:00の週の平均値、0:02の週の平均値…23:58の週の平均値の7...
#結果収納用データフレームを作成
y <- x[1,] #xは測定値が入っている262800行50列の行列
#52週間分平均データ計算
for (i in 1:52){
for (j in 1:720){
x <- rbind(y,
apply(x[seq((i-1)*720*7+j, 720*7*i, by=720),], 2,...
}
}
これだと、1回計算するのにかなりの時間(6〜7時間)がか...
行列を作ってみようともしたのですが、結局、平均するデータ...
~
作業を効率的に行う方法をご教示いただけませんでしょうか。~
よろしくお願い申し上げます。~
//
- 高速化が目的ならデータフレームやapply関数は使わず、ベク...
- 今あなたは、データを2次元配列で扱っているようだが、デー...
テストデータとして、12ヶ月それぞれにおいて1週間のみ毎時0...
x <- sample(100, 24*7*12*2, replace=TRUE)
dim(x) <- c(24, 7, 12, 2)
system.time(ans <- apply(x, c(1,3,4), mean))
dim(ans)
私のポンコツコンピュータでは以下のようになった
> x <- sample(100, 24*7*12*2, replace=TRUE)
> dim(x) <- c(24, 7, 12, 2)
> system.time(ans <- apply(x, c(1,3,4), mean))
ユーザ システム 経過
0.057 0.002 0.071
> dim(ans)
[1] 24 12 2
あなたのデータ規模だと、どれくらいの時間が掛かるだろうか??~
単に比例計算してみて驚いたね。時間が掛からないのに驚いた...
これなら、実際に計算してみることができる。
> x <- sample(100, 720*7*52*50, replace=TRUE)
> dim(x) <- c(720,7,52,50)
> system.time(ans <- apply(x, c(1,3,4), mean))
ユーザ システム 経過
318.294 6.466 367.592
> dim(ans)
[1] 720 52 50
5分くらいで終わった。たぶん、これであっていると思うんだが...
検算してみよう。
> ans[2,5,12] # 目的とする平均値の入っている要素を取り出し
[1] 59.42857
> mean(x[2,,5,12]) # 該当する7個のデータの平均値
[1] 59.42857
> ans[321,15,17] # 目的とする平均値の入っている要素を取...
[1] 47.14286
> mean(x[321,,15,17]) # 該当する7個のデータの平均値
[1] 47.14286
いいみたいだ。
- ご教示、どうもありがとうございます。~
今まで配列というものを使ったことがなかったので、そのよう...
- apply は使わざるを得ないと思うんだが。。。。 -- &new{2...
- 第1の場所について、第1週すなわち1月1日0時0分~23時58分、...
> a <- matrix(1:24, 12)
> a
[,1] [,2]
[1,] 1 13
[2,] 2 14
[3,] 3 15
[4,] 4 16
[5,] 5 17
[6,] 6 18
[7,] 7 19
[8,] 8 20
[9,] 9 21
[10,] 10 22
[11,] 11 23
[12,] 12 24
> dim(a) <- c(3,4,2) # 3×4×2 配列にする
> a
, , 1
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
, , 2
[,1] [,2] [,3] [,4]
[1,] 13 16 19 22
[2,] 14 17 20 23
[3,] 15 18 21 24
- あなたのコードのまず大きな問題は rbind 関数の多用です。...
> x <- y <- 1:100
> system.time(for (i in 1:9999) y <- rbind(y, x))
ユーザ システム 経過
106.122 38.282 146.565
> z <- matrix(0, 10000, 100)
> system.time(for (i in 1:10000) z[i,] <- x)
ユーザ システム 経過
0.168 0.036 0.205
> str(z)
num [1:10000, 1:100] 1 1 1 1 1 1 1 1 1 1 ...
> str(y)
int [1:10000, 1:100] 1 1 1 1 1 1 1 1 1 1 ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:10000] "y" "x" "x" "x" ...
..$ : NULL
- 先ほど、ようやくもろもろ理解できました。 あまりに早くて...
- 参考まで -- &new{2007-07-13 (金) 01:03:34};
> x <- sample(100, 720*7*52*50, replace=TRUE)
> dim(x) <- c(720,7,52,50)
> system.time(ans <- apply(x, c(1,3,4), mean))
ユーザ システム 経過
101.654 2.796 112.885
> ans2 <- array(0, c(720,52,50))
> system.time(for(i in 1:720) for(j in 1:52) ans2[i,j,] ...
ユーザ システム 経過
3.636 0.624 23.429
> ans2 <- ans2/7 # 総和を平均に変換
> identical(ans, ans2)
[1] TRUE
ついでに気づいた変なこと。
> 720*52*7*50
[1] 13104000
> 262800*50
[1] 13140000
つまり一年は7の倍数(52週)ではないので、次元操作だけではま...
> x <- matrix(1:(262800*50), 262800, 50) # テスト行列
> xx <- array(0, c(52,720,7,50)) # 作業用の配列...
## 適切に配列化(これも少し時間がかかる)
s <- seq(1, length=7, by=720) # 作業用の長さ7の数列...
> for (i in 1:52) for (j in 1:720) xx[i,j,,] <- x[(i-1)*...
> xxx <- array(0, c(52,720,50)) # 最終結果を入れる配...
## 高速な行和関数を使う
> for (i in 1:52) for (j in 1:720) xxx[i,j,] <- colSums(...
> xxx <- xxx/7 # 総和を平均に一括変換(一々割らない)...
- たぶん自動測定器のデータ等だろうから,週平均というのは...
**データフレームからルックアップ [#s24cee76]
>[[でみあん]] (2007-07-11 (水) 10:01:43)~
~
COLOR(red){いつまで経っても,編集されないので,代理で編集...
以下のような二つのデータフレームがある場合、
df1<- data.frame(cbind(c("a","a","a","b","b"),c("abc","d...
df2<- data.frame(cbind(c("a","b"),c(3,1)))
df2の各レコードに対して、それぞれ一列目の値をキーに一定の...
~
最終的には、
X1 X2 X3
1 a 3 ghi
2 b 1 mno
のようなデータフレームを作成したいのです。~
//
- もう少しわかりやすい(?)方法なら。いずれにしても簡潔...
> df1 <- data.frame(x=c("a","a","a","b","b"), y=c("abc",...
> df2 <- data.frame(xx=c("a","b"), yy=c(3,1))
> (temp <- df2$yy[df1$x])
[1] 3 3 3 1 1
> cbind(df1, data.frame(z=temp))
x y z
1 a abc 3
2 a def 3
3 a ghi 3
4 b jkl 1
5 b mno 1
- 「対応する最後の行」など という条件が付いていますねえ -...
**文字列を分解してベクトルに変換する方法 [#k8a503f0]
>[[学生]] (2007-07-10 (火) 18:01:03)~
~
はじめまして。文字列を分割してベクトルに変換したいのです...
str <- "1.1 2.3 3.4"
str.v <- strsplit( "1.1 2.3 3.4", " " )
などを自分では試してみたいのですが、うまくいきません。ど...
よろしくお願いします。~
//
- どのような結果を期待していて,どのような結果しか得られ...
数値ベクトルにしたいというのでしょうか?だったら,str.v <...
str.v <- scan(textConnection(str)) とでも,お好きに -- &...
- 属性を知ることから始めた方が近道と思いますよ -> [[R-T...
- 解説ありがとうございます。やりたいことは、こうして作成...
str.v <-s.numeric(unlist(strsplit( "1.1 2.3 3.4", " " )))
ave(str.v)
[1] 2.266667 2.266667 2.266667
という結果になります。これを
[1] 2.266667
のようになると思うのですが、どうして三つ平均値が表示され...
-- [[学生]] &new{2007-07-11 (水) 15:08:25};
- ?ave -- [[takahashi]] &new{2007-07-11 (水) 15:32:58};
- すみません。aveじゃないですねmean(str.v)ですね。ちゃん...
**平方ユークリッド距離 [#k09a5867]
>[[KO]] (2007-07-10 (火) 16:27:11)~
~
非類似度として平方ユークリッド距離を使用したいのですが、h...
計算可能でしょうか?~
//
- 平方ユークリッド距離は,ユークリッド距離を二乗しただけ...
- x <- matrix(rnorm(100), nrow=5); dist(x)^2; dist(x, met...
- できました。ありがとうございます。 -- [[KO]] &new{2007-...
**アポストロフィーを含む文字列の読み込み [#ccd4080c]
>[[K]] (2007-07-10 (火) 09:42:04)~
~
read.table("ImportFile", header=F, sep=";")のようにファイ...
2094;0;MACY'S;3;5;7
2095;0;MACY'S;3;4;8
read.tableのオプションなどでアポストロフィーを無視するよ...
//
- quote="" -- [[takahashi]] &new{2007-07-10 (火) 09:47:34};
- ? read.table ってやらないんですか? -- &new{2007-07-10...
- すみません。help(read.table)やって読んだつもりだったん...
**Rcmd SHLIBでDLLファイルを作成する際にR2.5だとうまくいか...
>[[たけ]] (2007-07-05 (木) 17:45:38)~
~
仮に解決済みなので恐縮ですが、[[Rの他言語利用の、windows...
D:?test?r>Rcmd SHLIB test.c
windres -I C:/PROGRA~1/R/R-25~1.1/include -i test_res.r...
c:?MinGW?bin?windres.exe: unknown format type `C:/PROGRA...
c:?MinGW?bin?windres.exe: supported formats: rc res coff
make: *** [test_res.o] Error 1
Rの2.3.1では以下のようにうまく行きました。
D:?test?r>Rcmd SHLIB test.c
latex: not found
gcc -shared -s -o test.dll test.def test.o -LC:/PROGRA...
これはバグでしょうか?私の環境はWinXPです。ちなみにtest.c...
//
- 2.5.1 for Winですが、自家製Cプログラムは今まで通りコン...
- Rの2.3.1 ならうまくいくので,バージョンダウンしたと言う...
- はい、ダウンバージョンで解決済みという意味です。分かり...
- こちらの環境(2.5.1 for Win)ではmysum.cがコンパイルで...
**任意の相関係数を持つポアソン乱数列を作成したいのですが ...
>[[taro]] (2007-07-02 (月) 00:51:12)~
~
与えられたlambdaを持つポアソン乱数列に対して、任意の相関...
~
こちらのサイトの「初級Q&A アーカイブ(1) - 層別の相関値...
~
そこで、gendat2() 関数の最初のデータ作成部分を変更して、...
~
質問させていただきたいのは、~
1. あるlambdaを持つポアソン乱数列に対して、任意の相関係数...
2. poissondist() 関数の出力結果で、lambda が設定した値と...
の2点です。~
~
下記に実行結果を記載させていただきましたが、gendat2() 関...
~
また、下記以外にも、いろいろなlambdaを指定してrpois()関数...
~
どうか、上記2点に関しまして、原因と対策をご教授いただけま...
長文失礼しました。
nc <- 1000 # 乱数列の個数
r <- 0.8 # 相関係数
z <- matrix(rpois(2*nc, lambda=1/10), ncol=2)
# 最初に生成したポアソン乱数列の確認
poissondist(hist(z[,1])$counts)
$result
n lambda
1000.000 0.419
$table
x d p e
c-0 0 899 6.577042e-01 6.577042e+02
c-1 1 0 2.755781e-01 2.755781e+02
c-2 2 0 5.773360e-02 5.773360e+01
c-3 3 0 8.063460e-03 8.063460e+00
c-4 4 98 8.446474e-04 8.446474e-01
c-5 5 0 7.078145e-05 7.078145e-02
c-6 6 0 4.942905e-06 4.942905e-03
c-7 7 0 2.958682e-07 2.958682e-04
c-8 8 0 1.549610e-08 1.549610e-05
c-9 9 3 7.528501e-10 7.528501e-07
$result2
chi sq. d.f. P value
2993.188 2.000 0.000
Warning messages:
1: 長いオブジェクトの長さが
短いオブジェクトの長さの倍数になっていません...
2: 長いオブジェクトの長さが
短いオブジェクトの長さの倍数になっていません...
res <- eigen(r2 <- cor(z))
coeff <- solve(r2) %*% (sqrt(matrix(res$values, 2, 2, b...
z <- t((t(z)-apply(z, 2, mean))/sqrt(apply(z, 2, var)*(n...
x <- z %*% chol(matrix(c(1, r, r, 1), ncol=2))
# 変換して生成したポアソン乱数列の確認
poissondist(hist(x[,1])$counts)
$result
n lambda
1000.000 0.817
$table
x d p e
c-0 0 820 4.417549e-01 4.417549e+02
c-1 1 0 3.609138e-01 3.609138e+02
c-2 2 0 1.474333e-01 1.474333e+02
c-3 3 0 4.015100e-02 4.015100e+01
c-4 4 161 8.200841e-03 8.200841e+00
c-5 5 0 1.340017e-03 1.340017e+00
c-6 6 0 1.824657e-04 1.824657e-01
c-7 7 0 2.129635e-05 2.129635e-02
c-8 8 2 2.174890e-06 2.174890e-03
c-9 9 16 1.974317e-07 1.974317e-04
c-10 10 0 1.613017e-08 1.613017e-05
c-11 11 0 1.198032e-09 1.198032e-06
c-12 12 0 8.156599e-11 8.156599e-08
c-13 13 1 5.442424e-12 5.442424e-09
$result2
chi sq. d.f. P value
5244.693 4.000 0.000
Warning messages:
1: 長いオブジェクトの長さが
短いオブジェクトの長さの倍数になっていません...
2: 長いオブジェクトの長さが
短いオブジェクトの長さの倍数になっていません...
下記の関数を参考にさせていただきました。~
## http://cat.zero.ad.jp/~zak52549/R/haebara/chap04.txt
## 任意の相関係数を作成する関数を定義 gendat2(標本サイズ...
gendat2 <- function(nc, r)
{
# 仮のデータ行列を作る。この時点では変数間の相関は近...
z <- matrix(rnorm(2*nc), ncol=2)
# 主成分分析を行い,主成分得点を求める。この時点で変...
res <- eigen(r2 <- cor(z))
coeff <- solve(r2) %*% (sqrt(matrix(res$values, 2, ...
z <- t((t(z)-apply(z, 2, mean))/sqrt(apply(z, 2, var...
# コレスキー分解の結果をもとに,指定された相関係数行...
z %*% chol(matrix(c(1, r, r, 1), ncol=2))
}
## 青木先生のサイト http://aoki2.si.gunma-u.ac.jp/R/pois...
## ポアソン分布への適合度の検定
poissondist <- function(d) ...
{
k <- length(d) ...
n <- sum(d) ...
k1 <- k-1
x <- 0:k1
lambda <- sum(d*x)/sum(d) ...
result <- c("n"=n, "lambda"=lambda)
p <- exp(-lambda)*lambda^x/factorial(x) ...
p[k] <- 1-sum(p[-k]) ...
e <- n*p ...
table <- data.frame(x, d, p, e) ...
rownames(table) <- paste("c-", x, sep="")
while (e[1] < 1) { ...
d[2] <- d[2]+d[1]
e[2] <- e[2]+e[1]
x <- d[-1]
e <- e[-1]
k <- k-1
}
while (e[k] < 1) { ...
d[k-1] <- d[k-1]+d[k]
e[k-1] <- e[k-1]+e[k]
x <- d[-k]
e <- e[-k]
k <- k-1
}
chisq <- sum((x-e)^2/e) ...
k <- k-2 ...
p <- pchisq(chisq, k, lower.tail=FALSE) ...
result2 <- c("chi sq."=chisq, "d.f."=k, "P value...
return(list(result=result, table=table, result2=...
}
//
- gendat2 関数の返す値はそもそも非負整数値になるのですか...
- hist(rpois(n, lambda=bar))$count というのはまずいなあ。...
- hist() 関数で無理矢理整数化していたのですか。最初のコメ...
c0/sqrt((c0+c1)*(c0+c2))
になります。c0 を適当に選べば、少なくとも (0, 1) 区間内の...
- 二変量ポアソン分布の資料を教えていただいて、大変ありが...
ページ名: