Q&A (初級者コース)/12
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
COLOR(blue){SIZE(18){新規投稿はできません。}}~
COLOR(green){SIZE(20){初心者のための R および RjpWiki に...
COLOR(red){過去の記事のアーカイブ}。~
-[[Q&A (初級者コース)/11]] (元記事が 2009-04-28 より 2...
-[[Q&A (初級者コース)/10]] (元記事が 2008-11-17 より 2...
-[[初級Q&A アーカイブ(9)]] (元記事が 2008-01-06 より 2...
-[[初級Q&A アーカイブ(8)]] (元記事が 2007-07-02 より 2...
-[[初級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
----
**緯度経度から距離の換算 [#f4c04e04]
>[[きむ]] (2011-01-07 (金) 18:12:19)~
~
いつも参考にさせていただいています。~
現在、緯度経度で座標が指定されている地域標準メッシュ(3次...
そこで、RjpWikiの、[[「RでGPS」:http://www.okada.jp.org/R...
library(sp)
ll <- matrix(c(34, 34, 138, 139), ncol=2)
km <- spDistsN1(ll, ll[1,], longlat=T)
sum(zapsmall(km))
とすると110.96kmとなりますが正確には92.38kmが正?また、
library(sp)
ll <- matrix(c(34, 35, 139, 139), ncol=2)
km <- spDistsN1(ll, ll[1,], longlat=T)
sum(zapsmall(km))
とすると結果が0になってしまいます。使用方法に誤りがあるの...
また、今のところ上記関数を用いて基準点からの距離で各メッ...
//
- 「結果が0になる」という部分のみにコメント。~
0 には,なりませんけど?
> library(sp)
> ll <- matrix(c(34, 35, 139, 139), ncol=2)
> km <- spDistsN1(ll, ll[1,], longlat=T)
> sum(zapsmall(km))
[1] 84.13467
> ll
[,1] [,2]
[1,] 34 139
[2,] 35 139
> km
[1] 0.00000 84.13467
> zapsmall(km)
[1] 0.00000 84.13467
> sum(zapsmall(km))
[1] 84.13467
どうなっているんでしょうね。 -- [[河童の屁は,河童にあら...
- 「緯度 経度 距離 計算」でググって,「[[地球上の2地点間...
国土地理院の[[計算式:http://vldb.gsi.go.jp/sokuchi/survey...
- spパッケージでは、WGS84を使っていますね。測地系と楕円体...
- 河童の屁は,河童にあらず,屁である様、ooki様コメントあ...
- 「緯度経度をx,y座標(平面直角座標系)に変換できる関数」...
- 谷村先生、コメントありがとうございました。値が異なるの...
- 取り急ぎ、1点だけ反応します。東経139度、北緯34-35度の距...
- 谷村先生、コメントありがとうございます。ご指摘のとおり4...
東経139度、北緯34-35度の距離を出す場合(当初質問の2番目の...
> library(sp)
> ll <- matrix(c(139, 139, 34, 35), ncol=2)
> km <- spDistsN1(ll, ll[1,], longlat=T)
> sum(zapsmall(km))
[1] 110.8055
なおRのバージョンは2.10.1であり、これを緯度-経度で入力す...
> library(sp)
> ll <- matrix(c(34, 35, 139, 139), ncol=2)
> km <- spDistsN1(ll, ll[1,], longlat=T)
> sum(zapsmall(km))
[1] 0
次に東経138-139度、北緯34度の距離を出す場合(当初質問の1...
> library(sp)
> ll <- matrix(c(138, 139, 34, 34), ncol=2)
> km <- spDistsN1(ll, ll[1,], longlat=T)
> sum(zapsmall(km))
[1] 0
-- [[きむ]] &new{2011-01-11 (火) 16:32:27};
- こちらはR version 2.12.1です。上記の結果が0になるとおっ...
- 谷村先生、丁寧な回答ありがとうございます。いろいろやっ...
- お知らせ>[[RでGPS]]でspDistsN1()の引数が逆になっている...
- R version 2.10.1 (2009-12-14)winで実行しみましたが、結...
- 名無し様、当方のverでチェックいただきありがとうございま...
- spDists()やspDistsN1()のヘルプであるspDistsN1.Rdに、引...
- 谷村先生、重ねてご配慮いただき大変ありがとうございまし...
**出力の一部をクリップボードにコピーして利用したい。 [#a2...
>[[yamada]] (2011-01-07 (金) 13:46:05)~
~
表のような結果をsink(),print()でテキストファイルに出力し...
jp uk us
1 -3.030863e-02 -2.523841e-02 -4.387615e-03
2 -1.594305e-02 -1.853893e-02 -1.499784e-02
3 9.720749e-03 8.167201e-03 1.648989e-02
4 -1.138466e-02 5.133008e-03 1.188763e-03
//
- 話は簡単なのです。あなたがデータフレームを使っているな...
もし行列の場合にも同じようなことをやりたければ,print(dat...
基本は,「オンラインヘルプを読みましょう」ということです...
- ありがとうございました。Rをインストールした後、ヘルプの...
- オンラインヘルプという用語が通じなかったかも知れません...
ファイルメニューのヘルプをクリックした場合には,そのウイ...
なお,R では例えば,単に print という関数でも,関数の引数...
「そんなこと,今まで読んだどの資料にも書いてなかった」と...
ところで,あなたが本当にやりたいことはどういうことなんで...
> sink(),print()でテキストファイルに出力しています~
ということからみれば,write.table(データフレーム, ファイ...
「実際にクリップボードに格納したいのは」ということは,コ...
> このページに掲載されている情報に関する責任はすべて...
ということで。 -- [[河童の屁は,河童にあらず,屁である。]...
**read.csv で読み込んだデータの積集合をとりたい [#xdac2650]
>[[tadashi]] (2011-01-05 (水) 15:08:35)~
~
やりたいことは、1列しかないCSVファイルを2つ読み込んで、...
read.cvs で読み込むと下記のようにうまくいきません。~
CSVから、データの作り方がうまくないのだと思いますが、どの...
> a <- read.csv('temp.1', header=FALSE)
> b <- read.csv('temp.2', header=FALSE)
> a
V1
1 1
2 2
3 3
> b
V1
1 3
2 4
3 5
> intersect(a, b)
data frame with 0 columns and 0 rows
//
- intersect の引数が何であるべきか調べましょう。つまり,...
scan で入力するとすれば,もっと簡単になる。intersect(scan...
- データ形式の指定がベクトルという意味がよくわかっていま...
**パッケージVARの関数restrictの計算精度 [#qd6b56ea]
>[[松代]] (2010-12-31 (金) 14:08:35)~
~
グレンジャー因果性の検定量をrestrictで制約した残差と制約...
//
- > 教科書の計算結果(Eview)やエクセルの計算結果と大幅...
Eview や Excel の結果の方が正しいのならば,restrict の計...
restrict での計算結果が思わしくないのが,関数の使い方が不...
- 私の説明不足でした。パッケージVARの利用経験者の感想を聞...
- > パッケージVARの利用経験者の感想を聞きたかったのです~
感想なんか不要でしょう。~
必要なのは,得られる結果が正確なのかどうなのかではないで...
あなたは,R の restrict の結果が不適切(不正確)だと判定...
もし,問われるとすれば,あなたの判定の根拠が正しいかどう...
そのような状況説明も不要なほど R の resctrict がだめだと...
> EveiwやSプラスなど有料ソフトを使えばこの悩みは解決しま...
というのは,どうなんでしょうか。~
お金を払えば正確無蜷なものが得られるというのは幻想かも知...
お金を払わねばならないソフトが間違えていて,そうではない...
意思決定にああだこうだはないと思いますけどね。有償ソフト...
もっとも,あなたの今の環境は R 以外の「信頼できる」ソフト...
> 例えばパケージごとにユーザーのフォーラムがあってそこで...
そういうのがあるかどうかは私は知りませんが,おそらくはな...
要するに,話を明確にするためには,~
このようなデータを R と その他のソフトで解析した結果はこ...
漠然と問いかけされても,答えようがありませんよね。~
議論は,事実に基づいてなされるべきですよね。~
R が信頼できないなあという状況で,R を採用するのは避けた...
- パッケージ経験者の評価サイトがありました。http://cranta...
**初級Q&A アーカイブ(6)クラスター図を横向きの応用方法 ...
>[[hashi]] (2010-12-30 (木) 17:22:31)~
~
いつもお世話になっております。~
デンドログラムの回転方法ですが、青木先生著「Rによる統計解...
set.seed(123)
x <- round(matrix(rnorm(100), ncol=5), 3)
d <- dist(x)
ans <- hclust(d^2, method="ward")
pdf("cluster.pdf", height=375/72, width=500/72)
plot(ans, hang=-1)
dev.off()
hang=-1の後ろに書き加え計算すると、
"horiz"はグラフィックスパラメータではありません
とメッセージが出ます。~
//
- さてはて。例題があるのだから,それぞれの関数が何を意味...
> hc <- hclust(dist(USArrests)^2, "cen")
> par(mar = c(4,1,1,7))
> plot(as.dendrogram(hc), horiz = T)
は,ちゃんと動くのだから,
set.seed(123)
x <- round(matrix(rnorm(100), ncol=5), 3)
d <- dist(x)
ans <- hclust(d^2, method="ward")
pdf("cluster.pdf", height=375/72, width=500/72)
plot(as.dendrogram(ans), horiz=TRUE) # @@@ ここをこの...
dev.off()
ということでしょう。 -- [[河童の屁は,河童にあらず,屁で...
- 河童の屁は,河童にあらず,屁である。さん、ありがとうご...
**mvpartパッケージで情報量エントロピーを使いたい [#y8aa59...
>[[akira]] (2010-12-30 (木) 14:20:04)~
~
いつもありがとうございます.~
mvpartパッケージのrpart関数について質問です.~
ヘルプを見ると、分岐指標に"gini"と"information"を選べるよ...
[[同志社大の金先生のHP:http://mjin.doshisha.ac.jp/R/19.ht...
一方、rpartのコード(40〜63行目ぐらいと思っていますが…)...
ご存知の方、いらっしゃいませんか?~
//
- For classification splitting, the list can contain any ...
実際にやってみると,ちゃんと違いがあるようですけど? -- [...
> library(rpart)
# @@@ information を使用
> fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyp...
+ parms=list(split='information'))
> fit2 <- rpart(Kyphosis ~ Age + Number + Start, data=ky...
+ parms=list(split='gini'))
>
> library(rpart)
> fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyp...
+ parms=list(split='information'))
> fit
n= 81
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 81 17 absent (0.79012346 0.20987654)
2) Start>=12.5 46 2 absent (0.95652174 0.04347826) *
3) Start< 12.5 35 15 absent (0.57142857 0.42857143)
6) Age< 34.5 10 1 absent (0.90000000 0.10000000) *
7) Age>=34.5 25 11 present (0.44000000 0.56000000)
14) Number< 4.5 12 5 absent (0.58333333 0.4166666...
15) Number>=4.5 13 4 present (0.30769231 0.692307...
# @@@ gini を使用(デフォルト)
> fit2 <- rpart(Kyphosis ~ Age + Number + Start, data=ky...
+ parms=list(split='gini'))
> fit2
n= 81
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 81 17 absent (0.7901235 0.2098765)
2) Start>=8.5 62 6 absent (0.9032258 0.0967742)
4) Start>=14.5 29 0 absent (1.0000000 0.0000000) *
5) Start< 14.5 33 6 absent (0.8181818 0.1818182)
10) Age< 55 12 0 absent (1.0000000 0.0000000) *
11) Age>=55 21 6 absent (0.7142857 0.2857143)
22) Age>=111 14 2 absent (0.8571429 0.1428571) *
23) Age< 111 7 3 present (0.4285714 0.5714286) *
3) Start< 8.5 19 8 present (0.4210526 0.5789474) *
- なるほど、ありがとうございます。 -- [[akira]] &new{2010...
**$ operator [#n637c305]
>[[松代]] (2010-12-28 (火) 15:54:34)~
~
パッケージVARSを使うために解説書どおりに以下のコマンドを...
> library(vars)
> data(Canada)
> layout(matrix(1:4, nrow = 2, ncol = 2))
> plot.ts(Canada$e, main = "Employment", ylab = "", xlab...
//
- Canada は "mts", "ts" クラスのオブジェクトなので,$ は...
- うまくいきました。ありがというございました。私が参考に...
- その文書中に Canada$e のような用例は見つかりませんが? ...
- あるけど -- [[通りすがり]] &new{2010-12-29 (水) 09:50:4...
- 大急ぎで通り過ぎたのかぶっきらぼうなこと(^_^;) 「通り...
なるほど,「その文書」には確かに書いてありますね。しかし...
http://rss.acs.unt.edu/... は公式というよりは,個人が管理...
現行の R (R 2.12.1) で,library(help=vars) をやると,その...
これ以上の情報はディレクトリ
'/Library/Frameworks/R.framework/Versions/2.12/Resources...
にある以下のビニエット中にあります:
vars: VAR, SVAR and SVEC models (source, pdf)
いずれにせよ「現行の文書中にはない」。私は,新しい文書を...
公式のものであっても,パッケージの機能(関数)の更新があ...
- 「河童の屁は,河童にあらず,屁である」さん、ありがとう...
**Windows7+R64 2.12.1でパッケージadaptをインストールでき...
>[[松代]] (2010-12-25 (土) 00:07:03)~
~
Windows7+R64 2.12.1でパッケージadaptをインストールできま...
> install.packages("adapt")~
パッケージを ‘C:\Users\fujimot\Documents/R/win-library/2...
(‘lib’ が指定されていないので)
--- このセッションで使うために、CRANのミラーサイトを選ん...
警告メッセージ:
In getDependencies(pkgs, dependencies, available, lib) :
package ‘adapt’ is not available
//
- CRANには、Package ‘adapt’ was removed from the CRAN rep...
- 知りませんでした。「データ解析Rの基本技」を勉強中で本通...
- 多変量関数の積分のためのパッケージ「adapt」が最近アップ...
install.packages("cubature",dep=T) # インストール
library(cubature) # パッケージの呼び出し
?adaptIntegrate # 関数のヘルプ
f <- function(x) cos(x) # 1変数関数の場合
adaptIntegrate(f, 0, pi/2)
g <- function(x) { # 2変数関数の場合
exp(-(x[1]^2+x[2]^2)/2)/(2*pi)
}
adaptIntegrate(g, c(-3, -3), c(3, 3))
**tapply関数について [#p72917e8]
>[[ランゲル・ハンス]] (2010-12-21 (火) 09:00:38)~
~
いつも掲示板を参考にさせていただいております。~
以前も同じような質問をさせていただいたので、大変恐縮です。~
NとMを10区間に区切って、その区間内に入るdの合計と平均を求...
下記の例(results1,results2)ではいくつかNAが出ます。NAを0...
最終的には区間にすべて色の入るlevelplotを作図したいと考え...
N <- c(0, 1, 3, 7, 12, 20, 30, 45, 50, 81)
M <- c(10, 20, 40, 60, 65, 75, 90, 95, 98, 100)
d <- runif(10, 0, 10)
data <- data.frame(cbind(N, M, d))
by1 <- cut(data$N, seq(0, 100, 10), right=TRUE, include....
by2 <- cut(data$M, seq(0, 100, 10), right=TRUE, include....
results1 <- cbind(tapply(data$d, list(by1, by2), sum))
results2 <- cbind(tapply(data$d, list(by1, by2), mean))
results1
results2
library(lattice)
levelplot(results1)
levelplot(results2)
どうぞよろしくお願いいたします。~
//
- tapply の後で,results1[is.na(results1)] <- 0 とすれば...
データの中に NA があるために sum や mean の結果が NA にな...
なお,tapply の結果を cbind する必要はありません。 -- [[...
- 河童さま 早速コメントありがとうございました。 -- [[ラ...
- 世の中には親切な人がいるもんだ.rユーザーには性格がい...
**特定の値が連続して出現する回数の最大値を計算 [#xed8d9eb]
>[[なつ]] (2010-12-20 (月) 22:13:28)~
~
Rを使って,特定の値が連続して出現する回数の最大値を計算す...
例えば,特定の値=1としまして,
a <- c(0, 1, 1, 1, 0, 0, 1, 1)
b <- c(1, 1, 1, 1, 1, 0, 1, 0)
という2つのオブジェクトがあるとします。~
この場合,aからは3,bからは5という値を計算したいというこ...
~
何か良い方法がありましたら,教えて頂ければ幸いです。~
初歩的な質問で申し訳ありませんが,よろしくお願いいたしま...
//
- 汚すぎ? -- [[きよしこ]] &new{2010-12-20 (月) 22:58:01};
max(diff(c(0, which(b != 1), length(b)+1))-1)
- あるいはこういうの。 do.call(function(lengths, values) ...
- こっちの方が分かりやすいかな。 max(subset(as.data.frame...
- 皆さま,さっそくありがとうございます。やっぱりRって便利...
- 度々すみません。ちなみに,ある値以上の値が連続して出現...
- rle を使ったやり方はよくわかりませんが,一番最初のごり...
- x が実数値ベクトルとすると x >= 0.5 は TRUE, FALSE (つ...
- これまたさっそくありがとうございます。>きよしこの様,...
**少し高度なヒストグラム(か散布図) [#e04ea5cf]
>[[yos]] (2010-12-19 (日) 20:39:01)~
~
よろしくおねがいします.~
~
1分おきで1日(0~1440分)に計測された,ある値があります.~
1列目が,時間(0,1,2,...,1440)~
2列目が,その時間における値(10, 40, ..., 50)~
3列目が,グループ(A, B, C)~
これを,~
X軸を,例えば1時間おきの24分割~
Y軸を,A, B, Cの3分割~
で,値の平均値をプロットしたいのですが,色々調べてもどう...
ご教授いただけないでしょうか~
//
- データは? x軸を時間(分刻み), y軸を値,グループは...
- tapply を使い,結果を matplot で描画する。グループの区...
set.seed(123)
d <- data.frame(time=0:1440, value=rnorm(1441), group=sa...
d$time2 <- d$time%/%60
d$time2[d$time2 == 24] <- 23
d$time2 <- factor(d$time2)
matplot(tapply(d$value, list(d$time2, d$group), mean), t...
&ref(matplot.png);
- 大変ありがとうございます。言葉足らずで大変申し訳ありま...
- それでは,matplot の代わりに,image を使えばよいかな。...
意図はともかく,見づらいグラフ。上のような折れ線の方が良...
もっとも,作り付けの関数は,どこかに不満が出るものなので...
tapply(d$value, list(d$time2, d$group), mean) の部分が主...
image(x=0:23, y=1:3, tapply(d$value, list(d$time2, d$gro...
axis(2, at=1:3, labels=LETTERS[1:3], pos=-0.5)
&ref(image.png);
- ご対応いただき大変ありがとうございます.イメージ通りの...
- 良い方法が見つかったら,報告してください。
**自由度調整済み決定相関係数の求め方 [#h8d92983]
>[[Kai]] (2010-12-12 (日) 15:31:30)~
~
こんにちは。~
lm()でデータAの一次回帰式を求め、predict()でデータBを回帰...
A_res <- lm(formula=Volume ~ Girth, data=trees) # データ...
B <- trees+rnorm(dim(trees)[1]*dim(trees)[2]) # データB...
B_res <- predict(A_res, B$Girth) # データBの回帰
B_resの回帰結果から自由度調整済み決定相関係数を求めたいの...
ヘルプファイルを読む限りではse.fitという引数が関係ありそ...
~
Rは2.11.1, OSはMac 10.5.8です。宜しくお願いします。~
//
- > B_resの回帰結果から自由度調整済み決定相関係数を求め...
そういうものは,自由度調整済み決定相関係数(「自由度調整...
- ご指摘の通り「自由度調整済み決定係数」の間違いでした。...
- 名前はないと思いますけど。そのようなものを一般的に使う...
しかし,それが何を意味するか,他の人の理解を得られるもの...
> trees <- data.frame(Volume=c(56, 54, 33, 58, 49), Girt...
> A_res <- lm(formula=Volume ~ Girth, data=trees)
> B <- trees+rnorm(dim(trees)[1]*dim(trees)[2])
> B_res <- predict(A_res, newdata=B) # 予測値
> Se <- sum((B$Volume-B_res)^2) # 残差平方和
> n <- nrow(B) # データ数
> St <- var(B$Volume)*(n-1) # 全平方和
> MSe <- Se/(n-2) # 残差の平均平方
> MSt <- St/(n-1) # 全体の平均平方(不偏分散)
> (CorrectedR2 <- 1-MSe/MSt) # 自由度調整済み決定係数と...
[1] 0.3946343
- 計算方法ありがとうございました。一般的には使われないも...
**igraphのインストールエラー [#ped42163]
>[[kouka]] (2010-12-11 (土) 22:07:24)~
~
R全くの初心者です。igraphのパッケージは下記のようにインス...
> utils:::menuInstallLocal()
パッケージ 'igraph' は無事に開封され、MD5 サムもチェック...
パッケージを読み込む際に、
> library(igraph)
エラー: パッケージ 'igraph' は 'arch=i386' に対してイ...
と表示されます。原因を教えていただけませんか?~
//
- あなたの環境がわからないのですけど。~
あなたの環境ではないパッケージをインストールしたとか?~
あなたの環境(sessionInfo() の結果)と,どのようにインス...
- Rのバージョンをあげると解決しませんか?[[このヘルプ:http...
**rep.aovとSPSS [#w9101bee]
>[[YK]] (2010-12-11 (土) 19:53:30)~
~
はじめまして。~
被験者間因子と被験者内因子を含む分散分析に関する質問です。~
先日、中級Q&Aに投稿した内容ですが、初級Q&Aが適切ではない...
Rのaov、nlmeパッケージのlme、carパッケージのAnovaと岡田先...
下記にサンプルを示します。~
P値はfactor1, factor2, timeの順に0.044, 0.441, 0.017とな...
ダミーの結果を加えて被験者内因子の水準を3にしてみても結...
他のサンプルデータでも結果が一致するときとしないときがあ...
SPSSはType IIIで計算していますが、R側でtype IIIを指定して...
原因についてどなたかご教示いただけましたら幸いです。
ID <- factor(rep(c(1:32),2))
factor1 <- factor(c(0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1,
1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1,
0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1,
0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0))
factor2 <- factor(c(0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1,
0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1,
0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1,
0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0))
time <- factor(c(rep(1,32), rep(2,32)))
result <- c(102.56, 101.80, 123.72, 74.16, 34.12,
61.52, 54.08, 115.08, 58.96, 60.24, 111.68, 122.20,
45.04, 104.84, 121.48, 125.20, 45.48, 217.00, 39.40,
157.48, 119.96, 65.80, 4.44, 39.40, 65.80, 90.20,
45.48, 117.72, 83.04, 156.40, 42.72, 110.92, 135.52,
22.60, 129.08, 127.76, 149.12, 69.92, 73.24, 97.12,
114.92, 54.56, 170.08, 71.60, 179.96, 57.08, 199.88,
126.48, 59.56, 120.40, 53.56, 127.12, 66.48, 75.24,
268.64, 90.88, 102.48, 147.84, 116.84, 84.40, 147.84,
138.76, 122.96, 120.04)
df <- data.frame(ID, factor1, factor2, time, result)
rep.aov(result ~ I(time) + B(factor1, factor2) + S(ID), ...
//
- セルフレスです。解決しました -- [[YK]] &new{2010-12-13 ...
SPSSと結果が一致しなかった件ですが、
contrasts(factor1) <- "contr.Sum"
として因子の対比を零和対比にすることによって
carのAnova(type="III")でSPSSと一致するようになりました。
下記のページが参考になりました。
http://myowelt.blogspot.com/2008/05/obtaining-same-anova-...
投稿する前にもっとしっかりと調べておくべきでした。
お騒がせして申し訳ありません。
**ネットワーク(sna)のグラフ描画(辺ごとの太さの調整)につ...
>[[net]] (2010-12-10 (金) 19:24:00)~
~
R初心者です.~
ネットワーク分析をして,ネットワーク図を描くときに,辺の...
たとえば,重み付きグラフの隣接行列(たとえばwg)でグラフを...
ちなみに,wgは作業ディレクトリにあるcsvファイルで,~
wg<-as.matrix(read.csv("XXXXX(ファイル名)".csv))~
で既に定義してあるとします.~
私は,~
gplot(wg,~
edge.lwd = wg)~
として,グラフを描こうとしたら,エラーで「使われていない...
~
具体的なスクリプトを教えていただけたら幸いです.~
//
- 「具体的なスクリプトを教えていただけたら幸いです」とい...
read.csv("XXXXX(ファイル名)".csv) なんていわれても,"XXX...
コメントを求めようと思うなら,現象を再現できる適切な規模...
あなたの遭遇した状況を,ああでもあるか,こうでもあるかと...
例えば,gplot についても,どのパッケージに入っているのか...
- snaパッケージのgplotのコードとしては間違っていません。r...
- 土曜日にコメント頂いた方へ
ありがとうございました.
もう一度試してみたら,以下のスクリプトでできました.heade...
質問をお送りした時のスクリプトと変更していないと思います...
(もちろん,スペースなどをチェックして何回かやり直したの...
library(sna)
wg <-as.matrix(read.csv("test.csv",header=TRUE))
gplot(wg,
edge.lwd = wg)
test.csvのなかみ
A,B,C,D,E,F
0,8,0,0,0,0
0,0,0,1,0,1
0,6,0,0,0,0
0,0,0,0,0,0
0,0,0,0,0,2
1,0,0,0,2,0
**列数が不揃いなtxtファイルを読み込みたい [#p4262ffd]
>[[しょう]] (2010-12-10 (金) 02:48:02)~
~
スペース区切りのテキストファイル(数百万行*9列)をRに読み...
~
ただ、元データの8列目が「備考」欄のため、scan(file="xxx.t...
~
read.tableを使うと「'289' 行目には,8 個の要素がありませ...
~
read.delim("xxx.txt")を使うと、空白の備考欄に「NA」を入れ...
~
read.delimで列数を設定できればよいのですが、可能でしょう...
~
R version=2.9.2, OS=Vista~
//
- Version 2.12.0 では,read.delim でちゃんと読めるようだ...
最新バージョンで確認してから質問すべきではないでしょうか?~
また,read.table でも,fill=TRUE にすると read.delim と同...
「こんなことができないのかな?」と思ったら,もう一度オン...
ファイル
1 2 3 4 5 6 7 8
11 12 13 14 15 16 17 18
21 22 23 24 25 26 27 28 comment
31 32 33 34 35 36 37 38
実行結果
> read.delim("test.txt", header=FALSE, sep=" ")
V1 V2 V3 V4 V5 V6 V7 V8 V9
1 1 2 3 4 5 6 7 8
2 11 12 13 14 15 16 17 18
3 21 22 23 24 25 26 27 28 comment
4 31 32 33 34 35 36 37 38
- ありがとうございます。初投稿で、要領を得ず申し訳ありま...
早速最新versionをインストール致しました。~
備考が6行目以降に初めて現れると、8列の箱が出来上がってし...
9列のheader行を追加するしかなさそうでしょうか? -- [[しょ...
#ファイル
1 2 3 4 5 6 7 8
11 12 13 14 15 16 17 18
21 22 23 24 25 26 27 28
31 32 33 34 35 36 37 38
41 42 43 44 45 46 47 48
51 52 53 54 55 56 57 comment 58
61 62 63 64 65 66 67 comment 68
71 72 73 74 75 76 77 78
#実行結果
read.delim(file="test.txt",sep="",header=F)
V1 V2 V3 V4 V5 V6 V7 V8
1 1 2 3 4 5 6 7 8
2 11 12 13 14 15 16 17 18
3 21 22 23 24 25 26 27 28
4 31 32 33 34 35 36 37 38
5 41 42 43 44 45 46 47 48
6 51 52 53 54 55 56 57 comment
7 58 NA NA NA NA NA NA
8 61 62 63 64 65 66 67 comment
9 68 NA NA NA NA NA NA
10 71 72 73 74 75 76 77 78
- なるほど,備考欄は途中にあると。確かに,最初の質問にも...
> 9列のheader行を追加するしかなさそうでしょうか?
追加しても,この場合
4 31 32 33 34 35 36 37 38 NA
5 41 42 43 44 45 46 47 48 NA
6 51 52 53 54 55 56 57 comment 58
7 61 62 63 64 65 66 67 comment 68
8 71 72 73 74 75 76 77 78 NA
みたいになるだけでしょう。その後で8列と9列をちゃんと解釈...
> matrixを使って行列化する
とありますが,備考欄以外は数値データですか?備考欄は文字...
結局の所は,readLines で一行ずつ読んで,備考欄を自分で処...
txt <- readLines("test.txt")
n <- length(txt)
dat <- matrix(0, n, 9)
for (i in 1:n) {
str <- unlist(strsplit(txt[i], " "))
if (length(str) == 8) {
str[8:9] <- c("", str[8])
}
dat[i,] <- str
}
dat
実行結果
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] "1" "2" "3" "4" "5" "6" "7" "" "8"
[2,] "11" "12" "13" "14" "15" "16" "17" "" "18"
[3,] "21" "22" "23" "24" "25" "26" "27" "" "28"
[4,] "31" "32" "33" "34" "35" "36" "37" "" "38"
[5,] "41" "42" "43" "44" "45" "46" "47" "" "48"
[6,] "51" "52" "53" "54" "55" "56" "57" "comment" "58"
[7,] "61" "62" "63" "64" "65" "66" "67" "comment" "68"
[8,] "71" "72" "73" "74" "75" "76" "77" "" "78"
- >追加しても,この場合…みたいになるだけでしょう。→ご指摘...
**R commanderのセットアップ [#p6447bd1]
>[[まさ]] (2010-12-08 (水) 17:45:28)~
~
R commanderを動かそうとしている初心者です。MacOSX10.6、R...
> install.packages("Rcmdr", dependencies=TRUE)~
の後に、~
> library(Rcmdr)~
と入力すると以下のメッセージが来ました。~
~
要求されたパッケージ tcltk をロード中です ~
Tcl/Tkインターフェースのロード中~
>~
~
となり、それから特に何も起こりません。 この後少し打ち込も...
//
- > install.packages("Rcmdr", dependencies=TRUE) で Rcmd...
install.packages(....) を入力した後,
also installing the dependencies ‘aplpack’, ‘relimp’
URL 'http://cran.md.tsukuba.ac.jp/bin/macosx/leopard/co...
Content type 'application/x-gzip' length 2077295 bytes (...
開かれた URL
==================================================
downloaded 2.0 Mb
URL 'http://cran.md.tsukuba.ac.jp/bin/macosx/leopard/co...
Content type 'application/x-gzip' length 37864 bytes (36...
開かれた URL
==================================================
downloaded 36 Kb
URL 'http://cran.md.tsukuba.ac.jp/bin/macosx/leopard/co...
Content type 'application/x-gzip' length 2647612 bytes (...
開かれた URL
==================================================
downloaded 2.5 Mb
ダウンロードされたパッケージは、以下にあります
/var/folders/mL/..../downloaded_packages
のようなログがコンソールに出ましたか?出ていないなら,イ...
他のパッケージをインストールしたことはありますか?~
インターネット環境は,プロキシ・サーバを通して外部とつな...
プロキシ・サーバを介しているならば,それなりの準備をしな...
かつても,「[[Rcmdrのダウンロード:http://www.okada.jp.org...
その他にも,上の「[[単語検索:http://www.okada.jp.org/RWik...
- 御返事有り難うございます。install...の入力後のログは同...
- > library(Rcmdr)入力後「Tcl/Tkインターフェースのロード...
その後は,
要求されたパッケージ tcltk をロード中です
Tcl/Tkインターフェースのロード中 終了済
要求されたパッケージ car をロード中です
要求されたパッケージ MASS をロード中です
要求されたパッケージ nnet をロード中です
要求されたパッケージ survival をロード中です
要求されたパッケージ splines をロード中です
Rcmdrのバージョン 1.6-2
次のパッケージを付け加えます: 'Rcmdr'
The following object(s) are masked _by_ '.GlobalEnv':
partial.cor
The following object(s) are masked from 'package:tcltk':
tclvalue
となるはずなので,やはりどこかおかしいのでしょう。なお,...
うまくいかない場合について,「うまくいかない」という筋道...
なお,言うまでもないですが,もしうまくいったら,「どのよ...
なお,Rcmdr には依存しないようにすることをお勧めしたいと...
- Tcl/Tkのダウンロードで解決しました。Rパッケージマネージ...
- 問題解決のための,素晴らしいスレッドになりましたね。あ...
**plotの使い方 [#kd9af09b]
>[[質問君]] (2010-11-27 (土) 18:29:37)~
~
plotの使いかたで質問です。
x <- c(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
y <- c(5, 6, 7, 1, 3, 5, 6, 7, 1, 3)
これらのデータで、x[1]の時、y[1]をプロットし、x軸にその...
よろしくお願いします。~
//
- 今日はみんな,立川あたりへ出払っているのかな?
plot(x, y, xaxt="n")
axis(1, at=x)
とでもするかな?グラフの横幅はある程度大きくしないと総て...
なお,x は この場合 x <- 1:10*10 とか x <- seq(10, 100, b...
- 有難う御座います。参考になります。 -- [[質問君]] &new{2...
**aggregate関数について [#z05ac7ea]
>[[ランゲル・ハンス]] (2010-11-26 (金) 15:14:51)~
~
aggregate関数について質問させていただきます。~
~
以下のようなデータフレーム(data)があったとき、cut 関数で ...
どうぞよろしくお願いいたします。
N <- c(0, 1, 3, 7, 12, 20, 30, 35, 50, 91)
d <- runif(10, 0, 10)
data <- data.frame(cbind(N, d))
by1 <- cut(data$N, seq(0, 100, 10), right=TRUE, include....
agg <- aggregate(data$d, by=list(by1), FUN="sum")
agg
//
- 「NA がある場合」ではなく,「該当区間にデータがない場合...
その他にも色々なやり方があるでしょう。 -- [[河童の屁は,...
> cbind(sapply(levels(by1), function(x) sum(d[by1 == x])))
[,1]
[0,10] 21.574116
(10,20] 8.055110
(20,30] 3.415935
(30,40] 2.436897
(40,50] 9.260387
(50,60] 0.000000
(60,70] 0.000000
(70,80] 0.000000
(80,90] 0.000000
(90,100] 5.495600
> cbind(sapply(split(d, by1), function(y) sum(y))) # な...
- 河童さま、早速コメントありがとうございました。 -- [[ラ...
- すみません、もう一点追加で質問させていただきます。私はs...
- データの個数は,sapply を使うまでもなく,table(by1)だけ...
> table(by1)
by1
[0,10] (10,20] (20,30] (30,40] (40,50] (50,60] (...
4 2 1 1 1 0 ...
> sapply(split(d, by1), function(x) length(x)) # これで...
[0,10] (10,20] (20,30] (30,40] (40,50] (50,60] (...
4 2 1 1 1 0 ...
- 河童さま、ありがとうございました。感謝・感謝です。明日...
**改行、空行 [#xf5d6c1a]
>[[超初心者]] (2010-11-20 (土) 15:53:12)~
~
空行の実行方法とプロンプト上で改行を行なう方法を教えてく...
マニュアル等いろいろ探したんですが、全くわかりません。~
初歩的すぎて申し訳ございませんが、よろしくお願いします。~
//
- 「空行の実行」とは何をどうすることなんでしょうか。改行...
- RでSEM入門(http://m884.jp/Osaka.R/_media/osaka.r_n...
- まだるっこしいですね。「エラーが出てうまくいきませんで...
- 「RでSEM入門 P16 をやったけどうまくいかなかった」な...
まずね,プロンプトの後に,sem パッケージつかうよというこ...
> library(sem)
次に,read.moments 関数,入力しますね。
> cor.1 <- read.moments(diag=FALSE, names=c("年齢", "個...
+ "教育年数", "職業威信"))
そうすると,コンソールには「1:」というプロンプトが出ます...
1: 0.12107847
2: -0.28075478 0.2329769
4: -0.04963399 0.3954726 0.2921118
を入力しますね。この入力が終わるとプロンプトは
7:
になります。このあと,何も入力せずに,リターンキーを押す...
そうすると,コンソールには
Read 6 items
と表示され,入力が完了した事になります。~
cor.1
を入力すれば,cor.1 の内容が表示されるでしょう。 -- [[河...
- ∖n じゃない。バックスラッシュ \ とn -- [[本筋では...
- お手数おかけしてすみませんでした。挑戦してみます。有り...
**日本語を含む固定長ファイルの読み込み [#u393a14e]
>[[困り果ててます]] (2010-11-19 (金) 18:48:40)~
~
日本語を含む固定長ファイルを読み込みたいのですが,うまく...
123あ 456
321いう789
のような内容の test.txt というファイルがあり,1件目のデー...
read.fwf("test.txt", width=c(3, 4, 3))
だと意図したように読めません。
readChar("test.txt", c(3, 4, 3), useByte=TRUE)
としてみたのですが,1行目しか読めません。~
解決法をご存知の方がいらっしゃいましたら是非 ご教示くださ...
よろしくお願いします。~
//
- あなたの環境がわからないので何とも言えません。上の方に...
「あ」の後に,半角空白が2個あるのですけど,本来そこには全...
> read.fwf("test.txt", width=c(3, 2, 3))
V1 V2 V3
1 123 あ 456
2 321 いう 789
Macintosh 版の R では,全角でも半角でも,「一文字は一文字...
Windows でも,これとは違った規則であるけど,規則に従って...
と,書いて,思い出しました。「R による統計解析」の 22 頁...
lc <- Sys.getlocale("LC_CTYPE")
Sys.setLocale("LC_CTYPE", "C")
read.fwf("test.txt", width=c(3, 4, 3))
Sys.setLocale("LC_CTYPE", lc)
とすればよいのかな?前後に余分な面倒な指定が必要なのか?W...
- ご返事,ありがとうございます。 sessionInfo の結果は
> sessionInfo()
R version 2.10.1 (2009-12-14)
i386-pc-mingw32
locale:
[1] LC_COLLATE=Japanese_Japan.932 LC_CTYPE=Japanese_Jap...
[3] LC_MONETARY=Japanese_Japan.932 LC_NUMERIC=C ...
[5] LC_TIME=Japanese_Japan.932
attached base packages:
[1] stats graphics grDevices utils datasets me...
です。もとのデータを編集するのは極力避けたいので,半角の...
他の環境のことはわかりませんが,Windowsでは読取幅を指定す...
- > Windowsでは読取幅を指定すると全角半角を問わず1文字単...
ああ、ごめんね。Sys.setLocale じゃなくて、Sys.setlocale ...
> lc <- Sys.getlocale("LC_CTYPE")
> Sys.setlocale("LC_CTYPE", "C")
[1] "C"
> a <- read.fwf("test.txt", width=c(3, 4, 3))
> Sys.setlocale("LC_CTYPE", lc)
[1] "Japanese_Japan.932"
> a
V1 V2 V3
1 123 あ 456
2 321 いう 789
のように、ちゃんとよめたけどなあ。 -- [[河童の屁は,河童...
- 丁寧にご教示いただき,ありがとうございます。試してみた...
> lc <- Sys.getlocale("LC_CTYPE")
> Sys.setlocale("LC_CTYPE", "C")
[1] "C"
> test <- read.fwf("test.txt", width=c(3, 4, 3))
> Sys.setlocale("LC_CTYPE", lc)
[1] "Japanese_Japan.932"
> test
V1 V2 V3
1 123 あ 4 56
2 321 いう78 9
やはり文字単位でしか読み込めませんでした... -- [[困り果...
- さて,困りましたね。私はうまく読めたといい,あなたは読...
- 何度もありがとうございます。ファイル(test.txt)をアップ...
con <- file(description="test.txt", open="r", encoding="...
lc <- Sys.getlocale("LC_CTYPE")
Sys.setlocale("LC_CTYPE", "C")
test <- read.fwf(con, width=c(3, 4, 3))
Sys.setlocale("LC_CTYPE", lc)
test
close(con)
> test
V1 V2 V3
1 123 あ 4 56
2 321 いう78 9
のように,文字コードを指定して読み込もうとしてみたのです...
- 何でconをfileで設定しなければならないのかなど,疑問だら...
なぜにして、「文字コードは shift-jisです」とおっしゃるの...
あなたがアップロードしたファイルに対して、プログラムを何...
私のハンドルが微妙に違うのは、なれないWindows環境で試して...
- わざわざWindows環境で試してくださったんですね。ここまで...
- 他のPCで試してみてもうまくいかなかったのですが,Sys.set...
> lc <- Sys.getlocale("LC_CTYPE")
> Sys.setlocale("LC_CTYPE", "E")
[1] "English_United States.1252"
> test <- read.fwf("test.txt", widths=c(3, 4, 3))
> Sys.setlocale("LC_CTYPE", lc)
[1] "Japanese_Japan.932"
> test
V1 V2 V3
1 123 あ 456
2 321 いう 789
ありがとうございました。 -- [[困り果ててます]] &new{2010-...
- これを機会にWindows上に仮想PC (VMPlayerなど)に無償OS(Li...
- な,なるほど... 検討してみます。ご助言,ありがとうござ...
**エクセルとの乱数の比較について [#p2adbf56]
>[[質問君]] (2010-11-18 (木) 22:04:57)~
~
エクセルでMM法を乱数で実行してるのですが、Rの乱数の方が...
探しても見当たりませんでした。もし、ご存知の方がいらっし...
//
- エクセルの乱数と比べられるとは,R も心外であろう。~
[[良い乱数・悪い乱数:http://www001.upp.so-net.ne.jp/isaku...
そのほかにも,「エクセル 乱数 R メルセンヌ ツイスタ」をキ...
R の乱数については,オンラインヘルプを探したらすぐ見つか...
- 参考になりました。有難う御座います。 -- [[質問君]] &new...
**パッケージ ltm の grm 関数の出力結果の読み方 [#z521c27a]
>[[NT]] (2010-11-17 (水) 20:14:57)~
~
3 段階評価 (0, 1, 2) の尺度の項目母数を grm 関数によって...
出力結果の二行のみ示すと以下の通りとなります。
Extrmt1 Extrmt2 Dscrmn
Item1 -1.719 -0.126 1.553
ここで Extrmt1 とは評価点 0 と 1 の項目曲線が交わる地点の...
ご教示願います。~
//
- Extrmt1と2は反応確率が0.5となるθ値でした -- [[NT?]] &n...
**ある座標と最も近い座標を特定する際の高速化の方法 [#x1c7...
>[[Saito]] (2010-11-17 (水) 01:37:43)~
~
いつもお世話になっております。~
この手の話は既出かと思い検索しましたが、見つけることが出...
~
ある座標セットaを持っています。この座標セットには、座標と...
> ###座標とそれに付属する価###
> a <- data.frame(
+ expand.grid(Long=seq(11, 13),
+ Lat=seq(20, 23)),
+ value=seq(1, 12)
+ )
> ###マッチさせる数###
> num <- 1000
>
> ###座標しか分かっていない###
> b <- data.frame(long=runif(num, 11, 13),
+ lat=runif(num, 20, 23)
+ )
> head(b)
long lat
1 12.00220 21.48183
2 11.14583 21.13535
3 12.31510 20.28334
4 11.54138 21.18872
5 11.66167 20.76173
6 12.52289 21.27551
> ###全ての組み合わせから最近接距離を持つ座標を特定###
> dis <- NULL
> for(i in 1 : nrow(b)) {
+ dis <- sqrt((b[i, 1] - a[, 1])^2 + (b[i, 2] - a[, 2])^2)
+ b[i, 3] <- a[which(dis==min(dis))[1], 3] #i番目のbが...
+ }
> head(b)
long lat V3
1 12.00220 21.48183 5
2 11.14583 21.13535 4
3 12.31510 20.28334 2
4 11.54138 21.18872 5
5 11.66167 20.76173 5
6 12.52289 21.27551 6
~
しかし、実際にはaもbも超巨大で、この方法だとものすごく時...
//
- 例えば spatstatパッケージのnncross関数はいかが。 -- [[...
- classパッケージのknn関数とか。 -- [[bob3]] &new{2010-11...
- ご助言ありがとうございました。無事出来ました。下記にnnc...
> a <- data.frame(
+ expand.grid(Long=seq(slong, elong),
+ Lat=seq(slat, elat)),
+ value=seq(1, elong*elat)
+ )
> b <- data.frame(long=runif(num, slong, elong),
+ lat=runif(num, slat, elat)
+ )
>
> dis <- NULL
> pp_a <- ppp(x=a[, 1], y=a[, 2], c(slong, elong), c(sla...
> pp_b <- ppp(x=b[, 1], y=b[, 2], c(slong, elong), c(sla...
>
> system.time(
+ for(i in 1 : nrow(b)) {
+ dis <- sqrt((b[i, 1] - a[, 1])^2 + (b[i, 2] - a[, 2])...
+ b[i, 3] <- a[which(dis==min(dis))[1], 3] #i番目のbが...
+ }
+ )
user system elapsed
17.19 0.00 17.20
>
> system.time(
+ b[, 4] <- a[nncross(pp_b, pp_a)$which, 3]
+ )
user system elapsed
0.01 0.00 0.02
>
> head(b)
long lat V3 V4
1 54.32715 76.365028 7554 7554
2 90.84222 7.004393 691 691
3 88.88978 93.650574 9389 9389
4 61.72731 8.535613 862 862
5 73.77037 6.405291 574 574
6 95.42776 92.221599 9195 9195
**大量の従属変数について共分散分析を行う方法について [#w7...
>[[カワウソ]] (2010-11-15 (月) 19:11:55)~
~
はじめまして。~
n個の従属変数(y1,y2,…,yn)と一つの独立変数xに関して,if構...
lm(y1 ~ x + g)
lm(y2 ~ x + g)
・
・
・
lm(yn ~ x + g)
//
- データはデータフレーム(または行列)に入っているのでし...
そんなことはよもやアルマイとは思いますが,従属変数が別々...
- 試しにirisを使ってやってみたのですが,どうやって結果を...
> iris.ancova <- for (i in 2:4) lm(iris[,i]~iris[,1] + i...
> summary(iris.ancova)
Length Class Mode
0 NULL NULL
> iris.ancova <- for (i in 2:4) summary(lm(iris[,i]~iris...
> iris.ancova
NULL
- summary は それぞれの lm 関数の引用ごとにやらないといけ...
for (i in 2:4) print(summary(lm(iris[,i]~iris[,1] + iris...
- ありがとうございます。とても勉強になりました。 -- [[カ...
**データセットの削除方法 [#w5122d67]
>[[ダルビ]] (2010-11-10 (水) 21:24:20)~
~
初めまして。~
Rコマンダーで特定のデータセットを削除するにはどうすればよ...
いろいろなデータセットができてしまって困っています。~
お手数ですが、よろしくお願います。~
//
- rm(データフレーム名)でいいと思います。[[ワークスペース...
**kmeans と pamのクラスタリング結果について [#ba86dbfb]
>[[Jam]] (2010-11-08 (月) 17:07:02)~
~
初めまして。~
clusterライブラリで利用できるk-meansとpamの挙動について質...
~
2次元のxy座標で示せるデータをk-meansとpamでクラスタリン...
私の解釈として、どちらの手法も初期のランダムサンプルに結...
クラスタリング結果が同じというのは、plotした図、result$ce...
~
これはどういうことなのでしょうか?pamのランダムサンプルは...
~
検証プログラム。
library(cluster)
# (x, y)形式のデータを読み込む
data <- read.table(var.in_file, header=F, sep="\t")
################
# pam clustering #
################
data.clust <- pam(data, 10)
data.clust$medoids
################
# k-means clustering #
################
data.clust <- kmeans(data, 10)
data.clust$centers
//
- medoids 引数で,むちゃくちゃな初期値を指定してもちゃん...
- 回答ありがとうございます。ロバストであることは知ってい...
- 「むちゃくちゃな初期値を指定してもちゃんといつも同じ(...
- 初期ランダムサンプル、pamでいうとmedoidですがこれにあま...
- > pamでいうとmedoidですがこれにあまり依存せず同じ解へ...
私も,想像だけで言っているわけではなく,最初に書いたよう...
kmeans の動態が異常すぎるだけです。毎回違った答えが出る方...
- kmeansの場合、最初に重心要素をランダムで決めるわけです...
- 追記です。あくまで現在利用しているデータは2次元座標で...
- > 私の解釈ではどこか見落としているのでしょうか。~
お互いの意見が全くすれ違ってますね。見落としているんじゃ...
「クラスタリング結果に正解はありません」そんなことはわか...
- kmeansの場合は確かにランダムに初期値を決めていたと思い...
**LOESS平滑化曲線と信頼区間 [#ua0a1ce2]
>[[MKI]] (2010-11-06 (土) 05:26:32)~
~
散布図にLOESS()で平滑化曲線を加えたあと、その信頼区間を合...
//
- http://finzi.psych.upenn.edu/R/library/stats/html/predi...
- http://finzi.psych.upenn.edu/R/library/ggplot2/html/sta...
- ありがとうございます。それらしいグラフを描けるようにな...
- 上にあります、「df an estimate of the effective degrees...
**リストの成分 [#a2766328]
>[[nan]] (2010-10-31 (日) 18:35:42)~
~
初めまして。~
~
リストの成分にアクセスしたいのですが、例えば以下のような...
> test <- function(x) {y=log(x); z=sin(x); return(list(v...
> test(1:3)
$value
[1] 1 2 3
$log
[1] 0.0000000 0.6931472 1.0986123
$sin
[1] 0.8414710 0.9092974 0.1411200
$logの[0.0000000]や$sinの[0.9092974]にアクセスするにはど...
~
宜しくお願いします。~
//
- リストの要素はベクトルになっているので,foo$log[i] のよ...
> foo <- test(1:3)
> class(foo)
[1] "list"
> class(foo$log)
[1] "numeric"
> foo$log[1]
[1] 0
> foo$sin[2]
[1] 0.9092974
- ありがとうございました! -- [[nan]] &new{2010-10-31 (日...
- この場合は名前付きリストなので$が使えますが,[...
**空の値を欠損値と指定する [#ef906715]
>[[のの]] (2010-10-31 (日) 04:07:34)~
~
データフレームxの中の列名(変数名)aについて~
> attach(x)
> x <- ifelse(a=="", NA, a)
とすると、空の値を欠損値NAと指定できます。~
しかし、aがfactorだった場合には、factorの性質が失われてし...
何かもっとエレガントな方法はあるのでしょうか?~
> x <- subset(x, a != "")
> table(a, useNA="always")
これも違うようです。~
//
- x$a <- factor(sub("^$", NA, x$a)) とするかなあ?(attac...
- ありがとうございます、見事ですね。美しいです。attachが...
- attach が嫌いな理由。(1) 引用はできるが付値ができない(...
- 河童さん、丁寧にありがとうございます。(1),(2)の理由は何...
**ブートストラップ法によるreliability [#ed3b7378]
>[[MKI]] (2010-10-29 (金) 22:29:49)~
~
多変量解析を行い、意味のありそうな説明変数を取り出す作業...
1.スプレッドシートからランダムにサンプリング(重複あり)~
2.一般化線形モデルに当てはめ~
3.stepAIC???で残った説明変数を抽出~
4.1〜3を1000回繰り返す~
といった感じになるかと思うのですが3.の部分が方法として...
//
- 追記ですが、指示されたクライテリアによる方法とstepAICを...
- ブートストラップを要求してくる割に,多くの問題が指摘さ...
- 指示を仰げる統計学専門家が身近におりませんので、一応、s...
**abline(h = 5) との交点の X の値 [#f6e3b4ba]
>[[hashi]] (2010-10-28 (木) 05:34:07)~
~
Q&A (初級者コース)/11であった「[[任意の X 軸と曲線との...
以下がデータです。
x <- c(2:10)
y <- c(0.084, 3.642, 12.472, 27.262, 47.035, 67.439, 83....
plot(x, y, xlim = c(2, 10), ylim = c(0, 100))
lines(spline(x, y, n = 20), col = 2)
このとき、abline(h = 5) を作図したときスプライン曲線との...
どうかよろしくご教授お願いいたします。~
//
- 正確ではないですけど,グラフィックウインドウをなるべく...
または,splinefun( ) で得られる関数を使って二分法などで答...
- 昼飯前でしたので,ニュートン法にしました。初期値はなる...
solve.spline <- function(x, y, y.val, x.init)
{
fun <- splinefun(x, y)
x <- x.init
repeat {
x2 <- (y.val-fun(x))/fun(x, 1)+x
if (abs(x-x2) < 0.0001) return(mean(c(x, x2)))
x <- x2
}
}
使用例
> solve.spline(x, y, 5, 4.5) # y=5 になる
[1] 3.205662 # x の値
> solve.spline(x, y, 30, 6) # y=30 になる
[1] 5.150513 # x の値
> fun <- splinefun(x, y) # これがスプライン曲線の関数
> fun(5.150513) # x=5.150513 のとき
[1] 30.00001 # y=30.00001 になってる
- 河童の屁は,河童にあらず,屁である。様ありがとうござい...
- > 値が異なるのか! y=xに対称なスプラインにはならないん...
誤差を考える方向が垂直方向か水平方向かの違いがあるんです...
**各列毎にある条件にあう要素の数をカウント [#q9c14aad]
>[[MKI]] (2010-10-27 (水) 13:17:49)~
~
データフレームの各列毎にある条件(たとえば0.1以上など)を...
//
- apply(データフレーム, 2, function(x) sum(x > 0.1)) など...
前もって必要な関数 func <- function(x) sum(x> 0.1) を定義...
- ありがとうございます。無事にカウントできました。funcを...
**4つの集合のベン図 [#c9c9d38c]
>[[sh]] (2010-10-27 (水) 09:17:04)~
~
4つの集合のベン図をRで描くにはどうすればよろしいでしょう...
//
- 円を使うかぎりは不可能でしょう。別に,領域の大きさと表...
&ref(vennDiagram.png);
- ありがとうございます。4つの集合のベン図を描くRコードを...
- 昼飯後の仕事ですが,以下のようなものを。~
パラメータは適当なので,あなたの環境だと微調整が必要かも。~
関数の第一引数にカウントを指定する。順番に注意。以下のデ...
前のコメントの図のように,記号だけを描きたいときには第一...
ラベルとカウントを描きたいときには,ラベルを labels 引数...
venn4 <- function(counts, col=c("red", "green", "blue", ...
{
elp <- function(x0, y0, a, b, col, lwd)
{
theta <- 0:360/180*pi
x <- x0+a*cos(theta)
y <- y0+b*sin(theta)
lines(x, y, col=col, lwd=lwd)
}
plot(c(0, 254), c(0, 202), type="n", axes=FALSE, xlab="...
x0 <- c(112, 116, 125, 68)
y0 <- c( 88, 134, 90, 90)
a <- c( 45, 78, 95, 45)
b <- c( 75, 50, 43, 75)
for (i in 1:4) {
elp(x0[i], y0[i], a[i], b[i], col=col[i], lwd=lwd)
}
# "" r g rg b rb gb rgb...
loc.x <- c(170, 120, 160, 118, 185, 135, 169, 134, 58, ...
loc.y <- c( 30, 30, 150, 144, 80, 67, 112, 104, 36, ...
text(loc.x, loc.y-!is.null(labels)*delta.y, labels=coun...
if (!is.null(labels)) {
text(loc.x, loc.y+delta.y, labels=labels)
}
}
venn4(d$counts, labels=c( "", "r", "g", "rg", "b", "rb",...
main="Four factors Venn diagram")
> d
r g b p counts
1 0 0 0 0 42
2 1 0 0 0 40
3 0 1 0 0 32
4 1 1 0 0 4
5 0 0 1 0 15
6 1 0 1 0 19
7 0 1 1 0 26
8 1 1 1 0 7
9 0 0 0 1 10
10 1 0 0 1 27
11 0 1 0 1 43
12 1 1 0 1 2
13 0 0 1 1 20
14 1 0 1 1 47
15 0 1 1 1 13
16 1 1 1 1 8
venn4(d$counts, labels=c( "", "r", "g", "rg", "b", "rb",...
main="Four factors Venn diagram")
&ref(vennDiagram2.png);
- なんで楕円でないといけないのかがやっと分かった... 河童...
- gplots パッケージの venn 関数は,5 集合までのベン図を描...
**行列操作について [#lf3b4999]
>[[ランゲル・ハンス]] (2010-10-26 (火) 10:29:21)~
~
いつも掲示板を参考にさせていただいています。~
さて、下記の行列mの各行の値を逆順にして、行列m2を作りたい...
行列操作でmからm2を作る方法、あるいはdからm2を作る方法を...
d <- c(1, 2, 3, 4, 5, 6, 7, 8, 9)
m <- matrix(d, 3, 3, byrow=TRUE)
d2 <- c(3, 2, 1, 6, 5, 4, 9, 8, 7)
m2 <- matrix(d2, 3, 3, byrow=TRUE)
どうぞよろしくお願いいたします。~
//
- 色々やり方はありますが,一番簡単には m[,3:1] で良いでし...
- ご教示ありがとうございました。簡潔な方法で大変参考にな...
- t(apply(m,1,rev))でもいけますね,たぶん。 -- &new{2010...
**ハフ変換 [#w08b6289]
>[[yorudan]] (2010-10-25 (月) 17:22:10)~
~
ハフ変換を行うためのパッケージはありますか!?~
//
- まあ,ずいぶんぶっきらぼうな質問ですこと。http://seekr....
**library(gregmisc)のバグ!? [#if20f8f6]
>[[のの]] (2010-10-24 (日) 03:42:03)~
~
library(gregmisc)を導入して、excelシートからデータを直接...
いくつかおかしな挙動をみつけたので書き込みます。~
こちらの環境は、MacOS10.6.4, GUI版R version 2.11.1 (2010-...
他の環境で、同じ状況が再現するのかも教えて欲しいです。~
~
1. エクセルシートの中で、"'’"または"…"を使っていると次の...
Wide character in print at /Library/Frameworks/R.framewo...
調べた範囲では、たぶん内部処理でperlに文字列を渡すときに...
これが&ref(sampleperlerror.xls,,サンプルファイル);です。~
2. サンプル数が増えてしまう~
こちらの方が問題が大きいです。Rはエラー表示しませんが、変...
試行錯誤して、""',"この文字列を含むとおかしくなることは再...
これが&ref(samplelengtherror.xls,,サンプルファイル);です。~
まだ、library(gregmisc)開発サイトの方は良く調べていないの...
//
- それぞれエラーの原因はあるでしょうけど,それをバグとし...
- コメントありがとうございます。そうですね、仕様なのかも...
**図の中に+/- [#pa0744e5]
>[[MKI]] (2010-10-22 (金) 13:29:37)~
~
図(グラフ)の中に平均(変数)+/-標準偏差(変数)を書き込...
可能ですが、変数などと組み合わせて表示する方法はないでし...
//
- こういうことがやりたいのかな?~
eval と parse を使えばよいです。 -- [[河童の屁は,河童に...
plot(hist(rnorm(10000)))
mean <- c(3.2, 4.5, 6.8)
sd <- c(0.2, 0.1, 0.6)
x <- c(-3, -2, 2)
y <- c(1100, 1300, 1500)
for (i in 1:3) {
str <- sprintf("text(%f, %f, labels=expression(%f%%+-%%...
eval(parse(text=str))
}
&ref(eval-parse.png);
- ありがとうございます。全くその通りです。3日も試行錯誤...
- 失礼!for は無用でした。 -- [[河童の屁は,河童にあらず...
plot(hist(rnorm(10000)))
mean <- c(3.2, 4.5, 6.8)
sd <- c(0.2, 0.1, 0.6)
x <- c(-3, -2, 2)
y <- c(1100, 1300, 1500)
str <- sprintf("text(%f, %f, labels=expression(%f%%+-%%%...
eval(parse(text=str))
**scatterplot3dでの三次元プロットのサイズ設定について [#f...
>[[しげゆき]] (2010-10-18 (月) 10:39:18)~
~
XPでR2.11.1の初心者です。よろしくお願いします。~
~
scatterplot3dでプロットの色、サイズを変えた図を作成してい...
~
以下データで左3列がXYZ軸、colorが色4種類、sizeが5段階です。
sisu dens length color size
1 -115 1.4 9.8 A 5
2 -62 1.6 7.0 A 3
3 108 1.7 452.0 B 2
4 174 1.8 202.0 B 1
5 184 1.7 141.0 B 4
6 11 1.7 10.2 C 4
7 23 1.7 40.0 C 5
8 -14 1.8 232.0 D 5
9 127 1.7 132.0 D 3
scatterplot3d(x=d$sisu, y=d$dens, z=d$length,
color=c(2,3,4,5)[unclass(d$color)],
cex.symbols=c(1,2,3,4,5)[unclass(d$size)])
cexを書き出しましたが、データどおりでおかしくありませんで...
> c(1,2,3,4,5)[unclass(d$size)]
[1] 5 3 2 1 4 4 5 5 3
どこか間違っているのでしょうか。~
//
- 完全にはフォローしていませんが,scatterplot3d のバグだ...
scatterplot3d の 88 行目に dat <- dat[y.ord, ] というのが...
対応策としては,88 行目と 92 行目をコメントアウトしてしま...
しかるべき方面へ,バグ報告してください。 -- [[河童の屁は...
&ref(scatterplot3d.png);
- どうもありがとうございます! それで重ねてで恐縮なので...
- scatterplot3d2 <- edit(scatterplot3d) で編集します。編...
? edit でオンラインヘルプを見てください。~
それでもうまくいかないというときは,&ref("scatterplot3d2....
source("scatterplot3d2.R") で読み込み,scatterplot3d のか...
- 重ねてありがとうございます。教えていただいたとおりの対...
- コメント途中で切れてしまいました。全くお手上げと思って...
**ベクトルの個数を返す関数の自作 [#b1148192]
>[[のの]] (2010-10-14 (木) 11:05:44)~
~
いつもお世話になります。
例えば、次のようなベクトルが二つあるとき、
x <- c(1:10)
y <- c(20:40)
test(x)とtest(y)の結果が1でtest(c(x,y))の結果が2となる...
test <- function(i) {
text <- as.character(match.call()[2])
if (grep("^c", text) != 1) {1}
else {grep(",", text)}
}
のようになるのかと考えましたが上手くいきません。~
//
- 「test(x)とtest(y)の結果が1で test(c(x,y))の結果が2と...
- ベクトルの個数というか、変数の数というのか、オブジェク...
- やり方はいろいろあると思いますけど,簡単に書くなら以下...
単に,カンマの個数を見ているだけなので,実際に利用すると...
この関数があなたの意図した仕様を満たしているかどうか,私...
> test <- function(arg)
+ {
+ sum(unlist(strsplit(deparse(substitute(arg)), ""))=="...
+ }
> x <- 1:10
> y <- 21:26
> z <- 31:48
> test(x)
[1] 1
> test(c(x, y))
[1] 2
> test(c(x, y, z))
[1] 3
- まさに求めていた回答です。理解するのに時間がかかりまし...
**周囲の値を用いた中心座標の平均値の算出 [#oee4e844]
>[[Saito]] (2010-10-13 (水) 13:00:02)~
~
いつもお世話になっています。~
過去ログ等検索しましたが、見つからなかったので質問させて...
座標と座標に付与されたデータからなる3列のデータセットがあ...
> ###仮想データセット###
> ###x, yが座標で、zが値###
> mat <- data.frame(expand.grid(x=1:6, y=1:4), z=1:24)
> mat
x y z
1 1 1 1
2 2 1 2
3 3 1 3
4 4 1 4
5 5 1 5
6 6 1 6
7 1 2 7
8 2 2 8
9 3 2 9
10 4 2 10
11 5 2 11
12 6 2 12
13 1 3 13
14 2 3 14
15 3 3 15
16 4 3 16
17 5 3 17
18 6 3 18
19 1 4 19
20 2 4 20
21 3 4 21
22 4 4 22
23 5 4 23
24 6 4 24
> ###y軸方向に足し合わせたときの行列を用意###
> mat2 <- data.frame(matrix(0, ncol=ncol(mat), nrow=nrow...
>
> ###x軸方向にも足し合わせたときの行列を用意###
> mat3 <- data.frame(matrix(0, ncol=ncol(mat), nrow=nrow...
>
> ###y軸の値がx軸方向にいくつ詰まってるのか確認###
> a <- as.numeric(summary(as.factor(mat[, 2]))[1])
>
> ###y軸方向に何度足せばよいのか確認###
> b <- length(levels(as.factor(mat[, 2])))
>
> ###等比数列でy軸の値をx軸方向に詰まっている分だけ足し...
> for (i in 1 : (b/2)) {
+ mat2[((i-1)*a+1):(i*a), ] <-
+ mat[((2*a)*(i-1)+1):((2*a)*(i-1)+a), ] +
+ mat[((2*a)*(i-1)+(1+a)):((2*a)*(i-1)+(a*2)), ]
+ }
> mat2
X1 X2 X3
1 2 3 8
2 4 3 10
3 6 3 12
4 8 3 14
5 10 3 16
6 12 3 18
7 2 7 32
8 4 7 34
9 6 7 36
10 8 7 38
11 10 7 40
12 12 7 42
> ###同様にx軸についても###
> for(i in 1 : (nrow(mat2)/2)){
+ mat3[i, ] <- mat2[(2*(i-1)+1), ] + mat2[(2*i), ]
+ }
> mat3
X1 X2 X3
1 6 6 18
2 14 6 26
3 22 6 34
4 6 14 66
5 14 14 74
6 22 14 82
> ###最終的に得たい座標セット###
> ###周囲4つの値の平均となってほしい###
> mat3/4
X1 X2 X3
1 1.5 1.5 4.5
2 3.5 1.5 6.5
3 5.5 1.5 8.5
4 1.5 3.5 16.5
5 3.5 3.5 18.5
6 5.5 3.5 20.5
>
一応、上記のへたくそなプログラムでもおおよそのやりたいこ...
一つは、周囲4つの平均でなく周囲9つの平均や16の平均(つまり...
そこを明示的に加えたいのですが、上手く書けませんでした(例...
~
もう一つの条件は、z軸にNAが含まれている座標があるのですが...
例えば、~
~
mat[1, 3] <- NA
等とした時には、そのまま上記プログラムを走らせると最後ま...
4で割るのではなく、そのときだけ上記例ですと3で割ってほし...
さらに、このデータ、実際は結構大きな行列(6万×3くらいです...
高速化した例ですと、大変助かります。~
~
どなたか上記の条件で変換が出来る方がいらっしゃいましたら...
//
- 以下のようなプログラムを書けば簡単です。行列の添え字に...
関数
func <- function(mat, n2)
{
n <- sqrt(n2)
nr <- nrow(mat)
nc <- ncol(mat)
stopifnot(nr%%n == 0 && nc%%n == 0)
ans <- NULL
for (j in 0:(nc%/%n-1)*n) {
ind.j <- (j+1):(j+n) # j+1 から j+n までの列
for (i in 0:(nr%/%n-1)*n) {
ind.i <- (i+1):(i+n) # i+1 から i+n までの行
ans <- c(ans, mean(ind.i), mean(ind.j),
mean(mat[ind.i, ind.j], ...
}
}
return(data.frame(matrix(ans, ncol=3, byrow=TRUE)))
}
実行例
mat <- matrix(1:108, 9, 12)
mat[4,5] <- mat[7,3] <- mat[9,6] <- NA # 欠損値を適当に...
mat
(ans <- func(mat, 9)) # 9×12 行列を,3行×3列単位でまとめる
実行結果
> mat
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]...
[1,] 1 10 19 28 37 46 55 64 73 82...
[2,] 2 11 20 29 38 47 56 65 74 83...
[3,] 3 12 21 30 39 48 57 66 75 84...
[4,] 4 13 22 31 NA 49 58 67 76 85...
[5,] 5 14 23 32 41 50 59 68 77 86...
[6,] 6 15 24 33 42 51 60 69 78 87...
[7,] 7 16 NA 34 43 52 61 70 79 88...
[8,] 8 17 26 35 44 53 62 71 80 89...
[9,] 9 18 27 36 45 NA 63 72 81 90...
> (ans <- func(mat, 9))
X1 X2 X3
1 2 2 11.000
2 5 2 14.000
3 8 2 16.000
4 2 5 38.000
5 5 5 41.125
6 8 5 42.750
7 2 8 65.000
8 5 8 68.000
9 8 8 71.000
10 2 11 92.000
11 5 11 95.000
12 8 11 98.000
性能評価
> mat <- matrix(1:(500*500), 500) # セル数が25万
> system.time(func(mat, 4)) # これが,一番時間のかかる場...
ユーザ システム 経過
35.414 49.723 85.492
> system.time(func(mat, 25))
ユーザ システム 経過
1.599 1.213 2.886
> system.time(func(mat, 100))
ユーザ システム 経過
0.277 0.030 0.407
- 河童の屁は,河童にあらず,屁である。さん、早速の回答を...
以下、確認と改造プログラムです。
###作成して頂いたfuncへ自分のデータを変換###
> mat2 <- data.frame(expand.grid(x=1:6, y=1:4), z=1:(6*4))
> mat3 <- matrix(mat2[, 3], 6, 4)
> func(mat3, 4) #確認
X1 X2 X3
1 1.5 1.5 4.5
2 3.5 1.5 6.5
3 5.5 1.5 8.5
4 1.5 3.5 16.5
5 3.5 3.5 18.5
6 5.5 3.5 20.5
上記の変換で、作っていただいた関数用にデータ加工する方法...
> ###1から始まらない座標系を与える###
> mat4 <- data.frame(expand.grid(x=seq(11, 16),
+ y=seq(3, 6)), z=1:24)
>
> ###番地を付け足す###
> mat5 <- data.frame(mat4, expand.grid(x2=1:length(level...
+ y2=1:length(levels(as.factor(mat4[, 2])))
+ ))
>
> ###座標を元の座標に戻すように改造###
> func2 <- function(mat, n2, MAT)
+ {
+ n <- sqrt(n2)
+ nr <- nrow(mat)
+ nc <- ncol(mat)
+ stopifnot(nr%%n == 0 && nc%%n == 0)
+ ans <- NULL
+ for (j in 0:(nc%/%n-1)*n) {
+ ind.j <- (j+1):(j+n) # j+1 から j+n までの列
+ for (i in 0:(nr%/%n-1)*n) {
+ ind.i <- (i+1):(i+n) # i+1 から i+n までの行
+
+ ###合致するものをsubsetで探してくる###
+ ans <- c(ans, mean(MAT[ind.i, 1]), mean(
+ subset(MAT[, 2],
+ MAT[, 4]==ind.i&M...
+ mean(mat[ind.i, ind.j]...
+ }
+ }
+ return(data.frame(matrix(ans, ncol=3, byrow=TRUE)))
+ }
###整合性の確認###
> func(mat3, 4)
X1 X2 X3
1 1.5 1.5 4.5
2 3.5 1.5 6.5
3 5.5 1.5 8.5
4 1.5 3.5 16.5
5 3.5 3.5 18.5
6 5.5 3.5 20.5
###整合性の確認###
> func2(mat3, 4, mat5)
X1 X2 X3
1 11.5 3.5 4.5
2 13.5 3.5 6.5
3 15.5 3.5 8.5
4 11.5 5.5 16.5
5 13.5 5.5 18.5
6 15.5 5.5 20.5
> 性能評価
> mat <- data.frame(expand.grid(x=101:600, y=101:600),z=...
> mat2 <- matrix(mat[, 3], 500, 500)
> mat3 <- data.frame(mat, expand.grid(x2=1:as.numeric(su...
+ y2=1:as.numeric(su...
+ ))
>
> system.time(func2(mat2, 4, mat3))
ユーザ システム 経過
539.02 0.12 539.36 #約9分かかります。
> system.time(func2(mat2, 25, mat3))
ユーザ システム 経過
83.35 0.00 83.35
> system.time(func2(mat2, 100, mat3))
ユーザ システム 経過
20.77 0.00 20.77
もう目的は十分達成されていると思うので、お時間があれば、...
もし、座標を元に戻すやり方をもっと早く処理する方法をご存...
- 簡単な話。行と列の座標値をベクトルに入れて,関数の引数...
func <- function(mat, rv, cv, n2) # ★★ rv, cv を追加
{
n <- sqrt(n2)
nr <- nrow(mat)
nc <- ncol(mat)
stopifnot(nr%%n == 0 && nc%%n == 0)
ans <- NULL
for (j in 0:(nc%/%n-1)*n) {
ind.j <- (j+1):(j+n) # j+1 から j+n までの列
for (i in 0:(nr%/%n-1)*n) {
ind.i <- (i+1):(i+n) # i+1 から i+n までの行
ans <- c(ans, mean(rv[ind.i]), mean(cv[ind.j]), # ★★ ...
mean(mat[ind.i, ind.j], ...
}
}
return(data.frame(matrix(ans, ncol=3, byrow=TRUE)))
}
#実行例
mat <- matrix(1:108, 9, 12)
mat[4,5] <- mat[7,3] <- mat[9,6] <- NA # 欠損値を適当に...
rv <- c(1,3,6,9,11,20,27,35,42) # ★★ 行方向の座標ベクト...
cv <- c(2,4,6,7,8,11,13,16,19,22,25,27) # ★★ 列方向の座...
rownames(mat) <- rv # これは付けなくても良いけど
colnames(mat) <- cv # 〃
mat
(ans <- func(mat, rv, cv, 9)) # 9×12 行列を,3行×3列単位...
> mat
2 4 6 7 8 11 13 16 19 22 25 27
1 1 10 19 28 37 46 55 64 73 82 91 100
3 2 11 20 29 38 47 56 65 74 83 92 101
6 3 12 21 30 39 48 57 66 75 84 93 102
9 4 13 22 31 NA 49 58 67 76 85 94 103
11 5 14 23 32 41 50 59 68 77 86 95 104
20 6 15 24 33 42 51 60 69 78 87 96 105
27 7 16 NA 34 43 52 61 70 79 88 97 106
35 8 17 26 35 44 53 62 71 80 89 98 107
42 9 18 27 36 45 NA 63 72 81 90 99 108
> (ans <- func(mat, rv, cv, 9)) # 9×12 行列を,3行×3列単...
X1 X2 X3
1 3.333333 4.000000 11.000
2 13.333333 4.000000 14.000
3 34.666667 4.000000 16.000
4 3.333333 8.666667 38.000
5 13.333333 8.666667 41.125
6 34.666667 8.666667 42.750
7 3.333333 16.000000 65.000
8 13.333333 16.000000 68.000
9 34.666667 16.000000 71.000
10 3.333333 24.666667 92.000
11 13.333333 24.666667 95.000
12 34.666667 24.666667 98.000
- 出来ました。以下確認です。
> mat2 <- data.frame(expand.grid(x=11:16, y=3:6), z=1:(6...
> mat3 <- matrix(mat2[, 3], 6, 4)
> rv <- c(11:16)
> cv <- c(3:6)
> func(mat3, rv, cv, 4) #確認
X1 X2 X3
1 11.5 3.5 4.5
2 13.5 3.5 6.5
3 15.5 3.5 8.5
4 11.5 5.5 16.5
5 13.5 5.5 18.5
6 15.5 5.5 20.5
自分の実際のデータに適用しても上手く動きました。非常に勉...
**ポリコリック相関係数行列の算出について [#i46ed896]
>[[JJ]] (2010-10-12 (火) 20:17:51)~
~
まったくの初級者です。~
ポリコリック相関係数を用いた因子分析(最尤法、プロマック...
現在までのところ、~
factanal(covmat=cor(データ), factors=3,promax,regression)~
~
という感じまでは来たのですが。。。数字は出ますが、これは...
~
ちなみにpolychor(x,y,)関数の場合、相関係数にはなので、相...
~
まことに見当はずれかもしれませんが、誰か力を貸していただ...
上記の corのままでは~
//
- 投稿途中で送信しちゃいましたか?~
「相関係数にはなので、相関係数行列にはなりませんよね」。...
どう言うところに,どういう風に力を貸したらよいのかよくわか...
- すみません途中で切れてしまいました。当方も統計、Rとも...
- 「このコマンドを実行してもpolychorは、相関係数を算出す...
なにが無理なんですか?そのようにすれば,相関係数行列はポ...
どういうことをやって,どういう結果が出て,その結果をみて...
- そうですね。できる限り正確に説明します。 もともと生のデ...
- psychパッケージのpolychoric関数ではどうでしょう? -- &...
- 返信ありがとうございます。すぐに行ってみたのですが、 fa...
- 謝る前に色々試したりヘルプを読んだほうがいいですよ。pol...
- かなり読んだつもりですが、まだわかりません。 factanal(c...
library(psych)
library(polycor)
data(bfi)
dat <- bfi[1:17] # 17項目のデータ
pcr <- polychoric(dat)
pcr # polychoric関数はrhoやtauといった複数の値を返す。po...
ans <- factanal(covmat=pcr$rho, factors=2, rotation="pro...
ans
- ポリコリック相関行列からfactanal関数で探索的因子分析を...
- 上のプログラム,コピーペーストしたらちゃんと結果が出ま...
- お二人ともありがとうございました。非常に勉強になりまし...
**続いている数字の数を出力する方法 [#ba84fb76]
>[[sayaka]] (2010-10-12 (火) 14:05:00)~
~
以前、「T,Fを文字列として出力するには」でお世話になりまし...
うまく説明するのが難しいのですが、下記の data のようなベ...
いろいろと試行錯誤したのですが、どうしても思いつきません。~
data はあるデータ中のエラーデータの行番号を抽出したもので...
開始位置は下記のposiで求めました。~
どうぞよろしくお願いします。~
> data
[1] 14 41 73 152 296 297 399 400 401 402 418 419 420...
[23] 430 431 451 452 453 454 460 461 466 500 501 502 503...
> posi <- data[diff(c(0,data)) != 1]
> posi
[1] 14 41 73 152 296 399 418 451 460 466 500
> a
[1] 1 1 1 1 2 4 14 4 2 1 9
//
- どっかのパッケージに関数がありそうだけど、 table(c(0,cu...
- ありがとうございます!table()を使ってこんなことが出来る...
**RとWindows 7の相性 [#i6a8c615]
>[[菊亭]] (2010-10-06 (水) 22:12:34)~
~
現在XPでRを使っております。そのうち7にアップグレードしょ...
//
- 「UAC無効」にして「管理者権限で実行」すればたいして問題...
**plotirxのcolor2D.matplotの色表示について [#q928de1d]
>[[ランゲル・ハンス]] (2010-10-02 (土) 09:51:51)~
~
plotrixにあるcolor2D.matplot関数について質問させていただ...
library(plotrix)
x <- c(1, 0, 10, 5, 3, 6, 4, 5, 4, 3, 8, 5, 1, 0, 7, 5)
data <- matrix(x, ncol=4)
color2D.matplot(data, c(1, 0), c(0, 1), c(0, 1), show.va...
このmatirixの数値をカラー表示のマトリックスに変換して数値...
上記の例では変換できるのですが、マイナスがある場合のスケ...
例えばyの場合について
y <- c(1, 0, 10, 5, -3, 6, -4, 5, 4, 3, 8, 5, 1, 0, 7, 5)
よろしくお願いします。~
//
- 何をどうしたいのか、具体的に示すことはできませんか?あ...
- すみません。yをcolor2D.matplot()でマトリックスを色分...
- ですから、「うまくいかない」というのは*具*体*的*に*どの...
- コメント遅くなり申し訳ありません。yは私の手違いでplot...
**psych パッケージの factor.pa の結果表示 [#oba25d2a]
>[[隣は何をする人ぞ]] (2010-10-01 (金) 21:34:02)~
~
psych パッケージを使って因子分析を行ったとき、因子負荷量...
library(psych)
data(bfi)
fa.parallel(bfi)
fpa.out <- factor.pa(bfi, nfactors=3, rotate="promax")
print(fpa.out) # 分析に使用した変数順そのまま
print(fpa.out, sort=TRUE) # 因子負荷量の大きい順に並べ替...
で分析を行いました。並び順は異なっても、各変数の因子負荷...
まず、print(fpa.out) の結果です。いくつかの変数だけを選択...
########## デフォルト(sort=FALSE)のとき
> print(fpa.out)
Factor Analysis using method = pa
Call: factor.pa(r = bfi, nfactors = 3, rotate = "promax")
Unstandardized loadings based upon covariance matrix
PA1 PA2 PA3 h2 u2 H2 U2
A1 -0.22 0.08 0.01 0.0600 0.94 0.0600 0.94
:
E4 0.74 -0.06 -0.15 0.4823 0.52 0.4812 0.52
:
gender 0.20 0.15 0.00 0.0490 0.95 0.0490 0.95
education -0.03 -0.04 0.10 0.0099 0.99 0.0099 0.99
age 0.04 -0.09 0.14 0.0398 0.96 0.0398 0.96
PA1 PA2 PA3
SS loadings 3.30 2.66 2.15
Proportion Var 0.12 0.09 0.08
Cumulative Var 0.12 0.21 0.29
Standardized loadings
item PA1 PA2 PA3 h2 u2
A1 1 -0.22 0.08 0.01 0.0600 0.94
:
E4 14 0.73 -0.06 -0.15 0.4812 0.52
:
gender 26 0.20 0.15 0.00 0.0490 0.95
education 27 -0.03 -0.04 0.10 0.0099 0.99
age 28 0.04 -0.09 0.14 0.0398 0.96
次に、print(fpa.out, sort=TRUE) の結果です。
########## sort=TRUE を指定したとき
> print(fpa.out, sort=TRUE)
Factor Analysis using method = pa
Call: factor.pa(r = bfi, nfactors = 3, rotate = "promax")
Unstandardized loadings based upon covariance matrix
PA1 PA2 PA3 h2 u2 H2 U2
E4 0.74 -0.06 -0.15 0.4823 0.94 0.339 0.66
:
A1 -0.22 0.08 0.01 0.0600 0.73 0.076 0.92
gender 0.20 0.15 0.00 0.0490 0.58 0.078 0.92
:
age 0.04 -0.09 0.14 0.0398 0.99 0.039 0.96
education -0.03 -0.04 0.10 0.0099 0.96 0.010 0.99
PA1 PA2 PA3
SS loadings 3.30 2.66 2.15
Proportion Var 0.12 0.09 0.08
Cumulative Var 0.12 0.21 0.29
Standardized loadings
item PA1 PA2 PA3 h2 u2
E4 14 0.62 -0.05 -0.12 0.339 0.66
:
A1 1 -0.25 0.09 0.01 0.076 0.92
gender 26 0.25 0.19 0.00 0.078 0.92
:
age 28 0.04 -0.09 0.13 0.039 0.96
education 27 -0.03 -0.04 0.10 0.010 0.99
Unstandardized loadings based upon covariance matrix につ...
Standardized loadings については、並べ替えしたのとしない...
なぜでしょう。~
一応、psych クラスの print メソッド(psych:::print.psych) ...
多くの人が使っているパッケージなので、いまだにバグがある...
//
- バグだと思います。psych:::print.psych.faの中を調べてみ...
- 作者からやっと回答がありました。
I finally had time to find the bug. It was not in fact...
the print routine which thus affected fa, as well as fac...
The sorted loadings are now sorted correctly, as are the...
I have fixed this for version 1.0.93 which should be rel...
だそうです。 -- [[隣は何をする人ぞ]] &new{2010-11-28 (日)...
**Rの実行を中断する方法 [#l8909641]
>[[のの]] (2010-09-29 (水) 02:16:00)~
~
MacでGUI版Rを使っています。version.string R version 2.11....
エディタにコマンドを連ねて、メニュー>編集>実行をする場...
コマンドリストの任意の場所でRの実行を止める方法を探してい...
readline(),stopifnot()などを試しましたがだめでした。~
今のところquit()を入れると、そこで、保存するかどうか聞い...
//
- try 関数を使うのが一つの方法。warning もエラーとして捉...
> try({ old <- options(warn=2) # これと,
+ a <- sqrt(-9)
+ print(,)
+ print("ok")
+ options(old) }) # これの対で囲む
Error in sqrt(-9) : # 最初のエラーでストップ
(警告から変換されました) 計算結果が NaN になりました
> try({ old <- options(warn=2)
+ a <- sqrt(9) # 修正した
+ print(,)
+ print("ok")
+ options(old) })
Error in .Internal(print.default(x, digits, quote, na.pr...
'x'が見つかりません # 二番目のエラーでストップ
> try({ old <- options(warn=2)
+ a <- sqrt(9)
+ print(a) # ここも直した
+ print("ok")
+ options(old) })
[1] 3 # 全部うまくいった
[1] "ok"
その他に,tryCatch, withCallingHandlers, signalCondition,...
- お礼が遅くなりました。詳細にありがとうございます。 -- [...
- 多分、質問の仕方が分かりにくかったと思います。やりたか...
、どこかRの実行を止めたい場所に簡単な命令文か何かを入れて...
while(1){ #エディタの最初に記載
+ ここから実行するコマンドリスト
+ 次のコマンド・・・
+ break #ここでRの実行を止める
+ 結果として実行されないコマンド
+ break;} #もし途中にbreakがない場合にはここで終了
このような方法も思いつきましたが、コマンドの結果を出力さ...
- 途中で止められれば,エラーじゃなくてもいいんですね。で...
- 上の try の 2 番目の例のように,止めたいところにエラー...
それとも,止めた後,実行継続をするかどうか判断できるよう...
重箱の隅つつきをするなら,while ループにして break を挿入...
「コマンドの結果を出力させるためにcat()を使わないといけな...
- ご質問の内容を正しく理解できているか分からないのですが....
print(1)
print() # Error
print(2)
と書いて[全て実行]すると、
> print(1)
[1] 1
> print() # Error
以下にエラー print.default() :
要素 1 は空です;
> print(2)
[1] 2
のように、エラー以降のprint(2)も実行されてしまう、と。
これを解決したいということであれば、単純にスクリプト全体...
{
print(1)
print() # Error
print(2)
}
のようにするのはいかがでしょう。括弧が閉じたところでスク...
> {
+ print(1)
+ print() # Error
+ print(2)
+ }
[1] 1
以下にエラー print.default() :
要素 1 は空です;
> # print(2)は実行されていない
もちろんこんなことせずとも、全体をファイルに保存してからs...
- 皆様、色々とコメントありがとうございました。とても勉強...
- 余談ですが、今MacとWinのGUI版Rを使った生物統計の講座を...
**パッケージのロードは起動後毎回必要ですか [#xebf839f]
>[[shumei]] (2010-09-25 (土) 14:33:13)~
~
Mac版R 2.11.1 をインストールした後、パッケージurcaをイン...
urcaをロードし、パッケージの使用はできましたが、Rを起動す...
何冊か書籍に当たってみましたが、該当する記述が見つからず...
パッケージのロード状態を維持するにはどうすればいいのでし...
ご教授下さい。どうぞよろしくお願い致します。~
//
- 「パッケージのロードは起動後毎回必要ですか」 はい,毎...
R を起動するたびに,自動的にロードしたいならば,ホームデ...
どうやって .Rprofile を弄るかはわかるでしょうかね?「ター...
- 早速教えて頂き、ありがとうございます。パッケージのロー...
.Rprofileというのは、Macの場合ライブラリの下の方にある、R...
library(urca)、ないし、setHook(packageEvent("urca","onLoa...
- 「.Rprofileというのは、Macの場合ライブラリの下の方にあ...
素直じゃないですね(^_^;)~
「ホームディレクトリの .Rprofile に, library(urca) 等と書...
なぜにして,Rprofile.site だと思ったのですか? -- [[河童...
- ごめんなさい。先週初めてRをさわり始めたもので、右も左も...
ホームディレクトリに.Rprofileを作成しましたら、無事作動し...
ありがとうございました。 -- [[shumei]] &new{2010-09-25 (...
- ~/.Rprofileと教えるところを単に.Rprofileと書くと、説明...
**ヒストグラムの階級分割 [#o0d3ed86]
>[[moyu]] (2010-09-21 (火) 14:54:22)~
~
ヒストグラムで、ある一部の区間において細かく階級を分割し...
hangseng = read.csv("ASIA/hangseng/hangsengdaily-1986dec...
hangseng.ts = ts(rev(hangseng$Close),start=c(1986,12,31)...
ts.plot(hangseng.ts)
ts.plot(diff(hangseng.ts))
hist(diff(hangseng.ts),breaks=30,col="magenta")
histの中のbreaksをどういじったらいいのでしょうか??~
//
- ? hist で breaks の項を読みませんでしたか?
breaks
one of:
・ a vector giving the breakpoints between histogram c...
・ a single number giving the number of cells for the ...
・ a character string naming an algorithm to compute t...
・ a function to compute the number of cells.
In the last three cases the number is a suggestion only.
あなたが指定した breaks=30 は,この中の 2 番目のものです...
- 回答ありがとうございます。助かりました。しかし上で示さ...
- オンラインヘルプの見方分かりませんか?コンソールに "? h...
**embedFontsで「・」が表示される [#p96c9eed]
>[[初級者です。]] (2010-09-20 (月) 18:11:38)~
~
CentOS 5.5 に Rをインストールし、以下の操作をしました。
pdf("test.pdf",family="Japan1")
plot(1:10,ylab="test test")
dev.off()
embedFonts("test.pdf")
すると、ylabに指定した"test test"文字列の間にある空白の位...
正確には、"test ・test"という感じで、普通に半角スペースが...
embedFonts()を呼ぶ前の状態では、「・」は表示されていませ...
また、その状態で文章のプロパティから使用されているフォン...
「KozMinPro-Regular-Acro」
「KozMinPro-Regular-Acro.Bold」
「KozMinPro-Regular-Acro.BoldItalic」
「KozMinPro-Regular-Acro.Italic」
「Symbol」
「ZapfDingbats」
というフォントが使用されていると出ますが、embedFonts()を...
何らかフォントの設定が足りないとは思い、いろいろ調べてみ...
同様の現象を解決された方がいらっしゃれば方法をご教示いた...
よろしくお願いいたします。~
//
- pdf(file="test.pdf",family="Japan1Ryumin") としたら、...
- sazanamiがいやんばかんと言うことだったと思いますので, I...
に
/KozMinPro-Regular-Acro << /FileType /TrueType /Path (/u...
みたいに記述すれば良いと思います. -- [[なかま]] &new{201...
**ヘルプファイルを表示エラー [#j1af339b]
>[[てるてるぼうず]] (2010-09-19 (日) 23:22:48)~
~
関数のヘルプファイルを表示したいと思い、以下を実行するの...
?…またはhelp(…)毎回以下のようなエラーが出ます~
> ?glm
警告メッセージ:
In file.show(temp, title = gettextf("R Help on '%s'", to...
file.show():ファイル 'C:\DOCUME~1\蜿、蟾晏忽蠢予LOCAL...
> help("glm")
警告メッセージ:
In file.show(temp, title = gettextf("R Help on '%s'", to...
file.show():ファイル 'C:\DOCUME~1\蜿、蟾晏忽蠢予LOCAL...
検索エンジン等で調べてはみましたが、未だ解決していません。~
環境は以下の通りです。
Microsoft Windows XP Professional
Version 2002
Service Pack 3
Intel(R) Core(TM)2 Duo CPU
E8400 @ 3.00GHz
2.99 GHz、976 MB RAM
Rのバージョン
R version 2.11.1 (2010-05-31)
//
- 再インストールして症状が再現されてからまた質問されては...
- てるてるぼうず再インストール後も同じ状況です。現在は別...
**regexprのpatternの文字数によるエラー [#zb34c92f]
>[[sh]] (2010-09-16 (木) 11:50:21)~
~
regexpr(pattern, text, perl = T)を実行したところ、以下の...
以下にエラー regexpr(pattern, text, perl = T) :
追加情報: 警告メッセージ:
In regexpr(pattern, text, perl = T) :
PCREパターンのコンパイルエラー
'regular expression is too large'
at ''
//
- textの長さは?エラーが起きない程度のpatternの長さは?正...
- textは、数十個の要素(各要素は10文字程度の長さの文字列...
- 例えば(簡略化した例です)次のように多段階でマッチング...
> text
[1] "A11" "A12" "A13" "A14" "A15" "A16" "A17" "A18" "A1...
[13] "A23" "A24" "A25" "A26" "A27" "A28" "A29" "A30" "A3...
[25] "A35" "A36" "A37" "A38" "A39" "A40"
> text1 <- gsub(pattern = "A11|A15|A20|A27",NA,text) # ...
> text1
[1] NA "A12" "A13" "A14" NA "A16" "A17" "A18" "A1...
[13] "A23" "A24" "A25" "A26" NA "A28" "A29" "A30" "A3...
[25] "A35" "A36" "A37" "A38" "A39" "A40"
> text2 <- gsub(pattern = "A29|A31|A35|A36|A39",NA,text1)
> text2
[1] NA "A12" "A13" "A14" NA "A16" "A17" "A18" "A1...
[13] "A23" "A24" "A25" "A26" NA "A28" NA "A30" NA ...
[25] "A35" NA "A37" "A38" NA "A40"
> is.na(text2)
[1] TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FAL...
[13] FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE TR...
[25] TRUE TRUE FALSE FALSE TRUE FALSE
> text[is.na(text2)] # マッチした文字列
[1] "A11" "A15" "A20" "A27" "A29" "A31" "A35" "A36" "A39"
- これではだめ? -- [[surg]] &new{2010-09-16 (木) 16:45:4...
> text <- paste('AAA11111', seq(11, 29), sep='')
> pattern = c('AAA1111111', 'AAA1111112')
> text %in% pattern
[1] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FAL...
[12] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
- アドバイスありがとうございます。text %in% pattern また...
**read.csv で大きな値を読み込み表示する [#gd4b3980]
>[[g]] (2010-09-14 (火) 11:54:44)~
~
例えば,
A,B,C
3121234567890,10,20
3122345678901,20,30
3123456789012,30,40
という中身のcsvファイルa.csvをread.csvで読み込ませると
> read.csv("a.csv")
A B C
1 3.121235e+12 10 20
2 3.122346e+12 20 30
3 3.123457e+12 30 40
となってしまいます.浮動小数点ではなくそのままの形で読み...
//
- 計算機による数値計算では扱える最大整数は 2^(31)-1 = 214...
> (X <- read.csv("a.csv"))
A B C
1 3.121235e+12 10 20
2 3.122346e+12 20 30
3 3.123457e+12 30 40
> options(digits=22)
> X
A B C
1 3121234567890 10 20
2 3122345678901 20 30
3 3123456789012 30 40
- read.csv("hoge.csv",colClasses=c("character","integer",...
- > 計算機による数値計算では扱える最大整数は 2^(31)-1 = ...
それは,integer のことで,numeric(または double) の有効桁...
> options(digits=22)
> 123456789012345
[1] 123456789012345
> 1234567890123456
[1] 1234567890123456
> 12345678901234567 # 近似による誤差が生じ始める
[1] 12345678901234568
> 123456789012345678
[1] 123456789012345680
> 1234567890123456789
[1] 1234567890123456768
> 12345678901234567890
[1] 12345678901234567168
> 123456789012345678901
[1] 123456789012345683968
> 1234567890123456789012 # 浮動小数点表示になり始める
[1] 1.234567890123457e+21
- digitsの指定で解決しました.ありがとうございました.ち...
- 商品コードならば,数値演算することはないし桁数も一定だ...
**plot エラー xy.coords(x, y, xlabel, ylabel, log) : 'x'...
>[[id]] (2010-09-12 (日) 21:34:03)~
~
密度関数を直接積分することで、分布関数を求めてプロットし...
簡単に書きなおすと以下のようなコードで、実行するとエラー...
> pdf <- function(x) exp(-x)
> cdf <- function(x) integrate(f, 0, x)
> plot(cdf)
以下にエラー xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ
cdf(Inf) などとすると正常な答えを返してくれるので、関数と...
プロットするにはどうすればよいでしょうか?~
~
ちなみに実際に考えている分布は beta prime distribution で...
この分布の cdf に出てくる 2F1 関数の扱いがわからず、上の...
//
- 実行環境がそのまま提示されていませんね。以下のようにな...
「簡単に書きなおすと」ーーー*簡*単*に*書き直さないで,「...
> pdf <- function(x) exp(-x)
> cdf <- function(x) integrate(f, 0, x)
> plot(cdf)
以下にエラー match.fun(f) : オブジェクト 'f' がありま...
- うまくいかない理由はあなたの定義した関数はベクトル化さ...
> cdf <- function(x) sapply(x,function(t) integrate(pdf,...
- お返事ありがとうございます&ミス失礼しました。ご教授い...
- beta prime distribution とは X がベータ分布に従う確率変...
**pooled adjacent violator algorithmについて [#uc315b3a]
>[[sakura]] (2010-09-12 (日) 17:26:35)~
~
Rで、pooled adjacent violator algorithm を使ったライブラ...
//
- ググるとisotoneが該当しますがこういうことではない? -- [...
- 最初、これかと私も思いましたが、・・・。ひとつの繰返し...
- 「最初、これかと私も思いましたが、」こういう後出しじゃ...
- 軽率な質問のようですね。毛頭、愉快犯でもないし、まじめ...
- あなたのことを「愉快犯だ」なんていってません。悲劇のヒ...
**for文内での連番オブジェクトの記述 [#x0cc2fa9]
>[[mtanaka]] (2010-09-07 (火) 20:12:53)~
~
for文で任意の関数に連番で命名したオブジェクトを入力する場...
for文内でのファイル名の記述様式がわかりません。
関数 func()
オブジェクト(入力データ): hoge01, hoge02, hoge03
オブジェクト(出力データ): piyo01, piyo02, piyo03
実行例
piyo01 <- func(hoge01)
piyo02 <- func(hoge02)
piyo03 <- func(hoge03)
この上記の実行例をfor文で記述したいです。~
どなたか、ご助言いただける方がいらっしゃいましたら、宜し...
//
- もしですね,hoge01 から hoge99 まで 99 個あってそれをな...
まあ,あえてやるなら方法がないわけではなく,以下のように...
hoge01 <- 1 # 関数に作用させる対象
hoge02 <- 2
hoge03 <- 3
hoge04 <- 4
for (i in 1:4) { # それぞれの対象について func を作用さ...
eval(parse(text=paste(sprintf("piyo%02i <- func(hoge%02...
}
piyo01 # 結果を参照するときに,一々名前を引用しないとい...
piyo02 # 何の処理をすることなく,単に結果をファイルに書...
piyo03
piyo04
しかし,普通は以下のようにした方がもっと扱いやすいでしょ...
hoge <- 1:4 # 関数に作用させる対象を配列なりリストなりで...
piyo <- func(hoge) # 関数を作用させ結果も配列やリストに...
# 場合によっては,for ループで処理し...
piyo # 結果を引用するときも,配列やリストの要素を参照する
eval(parse(text=foo)) は,今のあなたのやりたいことのため...
繰り返し処理は,データ構造も繰り返し処理に適したものを使...
- まあもともと連番のデータが与えられている場合もあるでし...
> hoge1 <- 1; hoge2 <- 2; hoge3 <- 3; hoge4 <- 4
> N <- 4
> X <- vector("list",N)
> for (i in 1:N) X[[i]] <- eval(parse(text=paste("hoge",...
> str(X)
List of 4
$ : num 1
$ : num 2
$ : num 3
$ : num 4
> foo <- function(x) x^2
> Y <- lapply(X,foo)
> str(Y)
List of 4
$ : num 1
$ : num 4
$ : num 9
$ : num 16
> Y[[1]];Y[[2]];Y[[3]];Y[[4]]
[1] 1
[1] 4
[1] 9
[1] 16
**パッケージに含まれているはずの関数が呼び出せない [#e54e...
>[[rcddnsj]] (2010-09-06 (月) 23:54:37)~
~
Windows7でR version 2.11.1を使用しております。~
~
サポートベクターマシンを試してみたくて、パッケージe1071を...
~
しかし、e1071に含まれているはずの関数predict.svmで予測し...
~
操作はRcmdrのスクリプトウィンドウから実行しています。~
~
このように、パッケージに含まれているはずの関数が呼び出せ...
~
Rの再インストール、パッケージe1071の再インストールなどは...
~
sessionInfo() の実行結果は下記の通りです。
R version 2.11.1 (2010-05-31)
i386-pc-mingw32
locale:
[1] LC_COLLATE=Japanese_Japan.932 LC_CTYPE=Japanese_Jap...
[5] LC_TIME=Japanese_Japan.932
attached base packages:
[1] splines tcltk stats graphics grDevices ut...
other attached packages:
[1] SparseM_0.86 e1071_1.5-24 class_7.3-2 Rcmd...
[8] MASS_7.3-7
loaded via a namespace (and not attached):
[1] tools_2.11.1
どなたか、ご助言いただける方がいらっしゃいましたら、宜し...
//
- まず何よりも?predict.svmです。
Usage:
## S3 method for class 'svm':
predict(object, newdata, decision.values = FALSE,
probability = FALSE, ..., na.action = na.omit)
分かりますよね? -- &new{2010-09-07 (火) 00:07:05};
- ありがとうございます。そもそも関数の使い方を誤っている...
- すみません。そもそも、predict.svmなんて使い方はないとい...
- 度々すみません。総称的関数という言葉は聞いたことがあっ...
- どうしても,フルネームで使いたければ,e1071:::predict.s...
- 普通メソッド関数(この場合 predict.svm)を直接使っても...
**ある条件に対応する要素だけを置換したい [#i255d410]
>[[ito]] (2010-08-31 (火) 20:12:14)~
~
あるベクトルについて、他のベクトルの中のNAに対応する要素...
x <- c(1,3,4,6,8,9)
y <- c(1,NA,2,NA,3,4)
変換後
> x
[1] 1 NA 4 NA 8 9
となるようにしたいのです。
ifelse(x[is.na(y)],NA)
とか考えたのですが、うまくいきません。~
よろしくおねがいします。~
//
-
mapply(max, x, y)
mapplyは1つ目の引数に指定した関数を2つ目以降に指定した...
- ありがとうございました。mapplyは難しいですが、頑張って...
- たびたびすみません。この方法だと、xの要素のほうがyのも...
- x[is.na(y)]<-NA -- &new{2010-08-31 (火) 20:56:11};
- 関数の仕様が不明瞭ですね。x と y の長さが違うときにはど...
func <- function(x, y)
{
nx <- length(x)
ny <- length(y)
if (nx <= ny) {
return(ifelse(is.na(y[1:nx]), NA, x))
}
else {
return(c(ifelse(is.na(y), NA, x[1:ny]), x[(ny+1):nx]))
}
}
# 長さが同じときには色々な方法がある
> x <- c(1,3,4,6,8,9)
> y <- c(1,NA,2,NA,3,4)
> func(x, y)
[1] 1 NA 4 NA 8 9
# x の長さが短いとき,x と同じ長さに y を切り詰めて,x, ...
> x <- c(1,3,4,6,8)
> y <- c(1,NA,2,NA,3,NA)
> func(x, y)
[1] 1 NA 4 NA 8
# x の長さが長いとき,y と同じ長さに x を切り詰めて処理...
> x <- c(1,3,4,6,8,9,10,11)
> y <- c(1,NA,2,NA,3,4)
> func(x, y)
[1] 1 NA 4 NA 8 9 10 11
- どうもありがとうございました。助かりました。 -- [[ito]]...
- (ベクトルの長さが等しいという前提で)NA値の特性を利用...
> 0*y
[1] 0 NA 0 NA 0 0
> x + 0*y
[1] 1 NA 4 NA 8 9
- あと, is.naがNA or NaNである事も忘れずに. -- &new{2010...
**pls回帰分析の有意検定について [#mb5f1172]
>[[初心者]] (2010-08-30 (月) 16:56:25)~
~
いつもお世話になっております。~
~
pls回帰分析をしたいのですが,Rですと,ベータは求められて...
pls回帰分析を学ぶに当たり,岩田先生のpls回帰入門やAcreMak...
~
使用環境は、R2.11.1です。OSはWindowsVista です。~
~
よろしくお願いします。~
//
- どなたからもコメントがないようなので。もともとpls回帰は...
**複数条件でベクトルを抽出する際に、条件が定数ではなくベ...
>[[Saito]] (2010-08-27 (金) 08:52:15)~
~
いつもお世話になっております。~
似た様な質問はいくつかあったのですが、意外にも、条件抽出...
~
ある参照列(座標と価がセット)があるときに、それを参照し...
~
set.seed(1)
a <- seq(1, 10)
b <- seq(1, 10)
c <- rnorm(100)
###参照列###
d <- data.frame(expand.grid(a=a, b=b), c=c)
###当てはめたい座標###
e <- data.frame(a=sample(a, 50000, rep=T), b=sample(b, 5...
###これでは上手く動かない###
subset(d$c, d$a==e$a & d$b==e$b)
###これでも###
subset(d$c, d$a%in%e$a & d$b%in%e$b)
~
つまり、eの座標軸が与えられたときに、dの座標軸と対応させ...
~
for文でやろうと思えばできるのですが、実際はもっとeが大き...
~
どなたか、分かる方がいらっしゃいましたら、ご教示いただけ...
//
- merge(e, d),ただし行の順序が変わってしまう -- [[surg]]...
- 提示されている仕様を満たすという限定で,以下のように提...
d2 <- matrix(d$c, 10, 10)
e2 <- as.matrix(e)
d2[e2]
つまり,この問題は表引きで,d$a, d$b が添え字の二次元配列...
d$c[e$a+10*(e$b-1)]
だけでよいことがわかってしまう。~
d$a, d$b が自然数でないとか,d$c がないセルがあるとかの場...
- > surgさん ありがとうございました。ただ、やはり順番が...
- > 河童の屁は、河童にあらず、屁さん なるほど、上手く座...
想像の通り、実際は三次以上の座標でしたので、この方法で助...
- 参考まで:merge 関数を使って、しかももとの順序を保存す...
> Ord <- data.frame(ord=seq(nrow(e))) # 本来の順序を示...
> A <- merge(merge(cbind(e,Ord),d),Ord) # 欲しい結果
> AA <- A[,-1] # 作業用変数列が...
> str(e)
'data.frame': 50000 obs. of 2 variables:
$ a: int 3 3 6 3 2 6 6 2 3 8 ...
$ b: int 6 8 4 8 7 8 4 2 6 7 ...
> str(A)
'data.frame': 50000 obs. of 4 variables:
$ ord: int 1 2 3 4 5 6 7 8 9 10 ...
$ a : int 3 3 6 3 2 6 6 2 3 8 ...
$ b : int 6 8 4 8 7 8 4 2 6 7 ...
$ c : num 0.3411 0.6107 -0.415 0.6107 -0.0392 ...
> str(AA)
'data.frame': 50000 obs. of 3 variables:
$ a: int 3 3 6 3 2 6 6 2 3 8 ...
$ b: int 6 8 4 8 7 8 4 2 6 7 ...
$ c: num 0.3411 0.6107 -0.415 0.6107 -0.0392 ...
もしくは(こちらの方が直感的でわかり易い?)
> ed <- merge(cbind(e,Ord),d)
> str(ed)
'data.frame': 50000 obs. of 4 variables:
$ a : int 1 1 1 1 1 1 1 1 1 1 ...
$ b : int 1 1 1 1 1 1 1 1 1 1 ...
$ ord: int 32810 46779 23088 6441 17984 15437 12878 47...
$ c : num -0.626 -0.626 -0.626 -0.626 -0.626 ...
> ed[order(ed$ord),][,-3] # 上のAAと同じもの
**関数"pls"を見つけることができませんでした [#pc7ee0b4]
>[[学生]] (2010-08-26 (木) 22:48:35)~
~
RでPLSを行おうとして追います。~
PLSパッケージをインストールし,読み込んでも,「関数"PLS"...
Rになれるための練習として,インターネット「岩田先生のPLS...
何卒よろしくお願い致します。~
//
- あなたがどのようにやったのか,コンソールの表示をペース...
pls パッケージは,"Partial Least Squares Regression (PLSR...
具体的には以下のようにします。 -- [[河童の屁は,河童にあ...
> library(pls) # pls パッケージを使うために
次のパッケージを付け加えます: 'pls'
The following object(s) are masked from 'package:stats':
loadings
> plsr(foo, ...) # plsr というのが,あなたが使いたい関数...
- 早速,ご回答,ありがとうございます。plsは小文字で打って...
- 以下にコンソールの表示をペースト致します。 -- [[学生]] ...
> wine <- read.table("wine.txt")
> Y <- scale(wine[,1:3])
> X <- scale(wine[,4:7])
> library(pls)
次のパッケージを付け加えます: 'pls'
The following object(s) are masked from 'package:stats':
loadings
> wine.pls <- plsr(X, Y, 1:3, validation="CV")
以下にエラー formula.default(object, env = baseenv()) : ...
- あなたは最初「関数"PLS"を見つけることができませんでした...
> library(pls)
> wine <- read.table("wine.txt")
> Y <- scale(wine[,1:3])
> X <- scale(wine[,4:7])
> wine.pls <- plsr(Y~X, 3, data=wine)
> summary(wine.pls)
Data: X dimension: 5 4
Y dimension: 5 3
Fit method: kernelpls
Number of components considered: 3
TRAINING: % variance explained
1 comps 2 comps 3 comps
X 70.45 98.35 100.0
Hedonic 70.53 70.71 100.0
Goes_with_meat 93.74 98.51 100.0
Goes_with_dessert 25.72 86.97 87.5
> coefficients(wine.pls, ncomp=2)
, , 2 comps
Hedonic Goes_with_meat Goes_with_dessert
Price -0.27140847 -0.2525422 0.01880366
Suger 0.06339537 0.3206223 0.78764141
Alcohol 0.28567521 0.3619657 0.27127454
Acidity 0.30722143 0.3730769 0.24272634
- 河童の屁さん,ご回答,ありがとうございました。おかげさ...
> R574 <- read.csv("R574.txt")
> Y <- scale(R574[,9:10])
> X <- scale(R574[,5,8])
> R574.pls <- plsr(Y~X, 3, data=R574)
以下にエラー mvr(Y ~ X, 3, data = R574, method = "kernel...
Invalid number of components, ncomp
- コンソールをペーストする方法も学びましょうね。~
本筋とは関係ないですけど,"scale(R574[,5,8])" というのは...
また,今後いろいろやっていく上で,エラーメッセージをみて...
Invalid number of components, ncomp と書いてあるのですか...
どういう風に invalid なのか,正しくはどのような値を指定し...
お手本にあるものをそのまま引き写してやるのでは,だめなこ...
? plsr でオンラインヘルプを参照するのが一番最初にやるべき...
R574 がどんなものなのかについて何の情報もないので,これ以...
- 河童の屁さん,度々ご回答ありがとうございました。Rを学ん...
**図の軸の数値が指数表示になる [#c8b48ce8]
>[[ま]] (2010-08-26 (木) 16:50:23)~
~
図を作成した際に,x軸やy軸に添えられる数字が指数表示(1e-...
//初歩的な質問ですが,
何卒よろしくお願い申し上げます。~
//
- 「自動的になります」というのは,そのようにした方が良い...
また,例えば数値が1,000,000のオーダーの場合などである場合...
あなたが実際に描いた例を見れば,適切な対処法が示されるこ...
- 手っ取り早いのは,options関数でscipenをいじる方法 -- [[...
scipen.org <- getOption('scipen')
x <- seq(0, 0.001, 0.0001)
plot(x)
options(scipen=10)
plot(x)
options(scipen=scipen.org)
- 河童さま,surgさま,ご教示ありがとうございます。そこま...
**DEAの線形計画問題について [#na63d5bb]
>[[atsuo]] (2010-08-23 (月) 11:52:39)~
~
//初心者です。基本的なことですみません。質問させてくださ...
optimやconstrOptimで解決できないかと、あれこれやってみた...
//私の力不足で、解決できていません。~
以下の線形計画問題を解決したいのです。~
~
� 2*θ−2*λ[1]−2*λ[2]−1*λ[3] >= 0~
� 1*θ−1*λ[1]−2*λ[2]−2*λ[3] >= 0~
� 1 −1*λ[1]−1*λ[2]−1*λ[3] <= 0~
� λ[1]+λ[2]+λ[3] >= 1~
� λ[1]>=0~
� λ[2]>=0~
� λ[3]>=0~
� �〜�の条件を満たし、θを最小にする...
~
欲しいのはθの値とλ[1]、λ[2]、λ[3]の値です。~
これはDEA分析なのですが、パッケージのFEARでも準備されてい...
//基本的な質問で申し訳ありません。よろしくご教授お願い申...
//ちなみに
環境は、R2.11.1です。OSはWindows7 です。~
//
- モンテカルロシミュレーションによると,λ1=1, λ2=λ3=0 の...
> sim <- function(trial=10000, mx=1)
+ {
+ count <- 0
+ min.theta <- 10000
+ while(TRUE) {
+ lambda <- runif(3, min=0, max=mx) # 一様乱数発生 条...
+ if (sum(lambda) >= 1) { # 条件(4)
+ theta <- max(lambda%*%c(1, 1, 0.5), lambda%*%c(1, 2...
+ if (theta < min.theta) { # それまでに見つかったもの...
+ cat(theta, lambda, "\n")
+ min.theta <- theta # 見つかった解の候補で更新
+ ans <- c(theta, lambda)
+ count <- 0 # 空振り回数の更新
+ }
+ else {
+ count <- count+1 # 空振りが以下の回数続けば現在の...
+ if (count > 1000000) return(ans)
+ }
+ }
+ }
+ }
> (ans <- sim()) # 出力は順に,θ,λ[1],λ[2],λ[3]
2.961947 0.9688506 0.2850662 0.711482
2.460659 0.9278959 0.2115464 0.5548352
1.890355 0.7575402 0.4784459 0.08796157
1.857158 0.2751631 0.7211324 0.06986522
途中省略
1.030237 0.9743367 0.00815206 0.01979813
1.029195 0.9880413 0.004979686 0.01559721
1.023945 0.9964487 0.005063805 0.008684346
[1] 1.023944978 0.996448677 0.005063805 0.008684346 # こ...
> # 念のために条件のチェック
> 2*ans[1]-2*ans[2]-2*ans[3]-ans[4] >= 0 # (1)
[1] TRUE
> ans[1]-ans[2]-2*ans[3]-2*ans[4] >= 0 # (2)
[1] TRUE
> sum(ans[2:4]) >= 1 # (3), (4)
[1] TRUE
> all(ans[2:4] >= 0) # (5), (6), (7)
[1] TRUE
- 問題が正しいとすれば,これは紙と鉛筆で解ける問題です....
- ちょっと違う。λ[2]=0 のとき,λ[1],λ[3],θは図のように...
&ref(3dplot.png);
- 河童さま、ご教示ありがとうございます。モンテカルロシミ...
- 正式表記は「河童の屁は,河童にあらず,屁である。」ですが(...
どの方法(関数)がよいか,どういうふうに使うのかなどは,私...
**GARCHの解釈 [#ied3a736]
>[[z]] (2010-08-20 (金) 22:42:44)~
~
Coefficient(s)や、Hessian Matrixに標示される、muやomegaの...
例) Coefficient(s):~
mu ar1 ma1 omega alph...
//
- 次々に質問するより,少しは自分で調べれば良いと思います...
一般的にはオンラインヘルプ,パッケージによっては vignet ...
なお,コメントの付け間違いを自分で消去するとか,行の先頭...
- なるほど。一応、Referenceに出ていたテキスト数冊とOnline...
- > Referenceに出ていたテキスト数冊とOnline help(JpとEnサ...
すごいですね。全部見たけどなかったんですか。「muやomegaの...
「mu や omega とは何か」というのではないのでしょうね?~
GARCH と一言で言っても関連パッケージも関数もいろいろある...
とか,書いてあるようですが。~
まあ,あなたがどういう情報を欲しているのかがわからないの...
なお,「最後に出てくるはずのギリシャ文字が、αの前に出てき...
&ref(omega-alpha.png);~
みたいに使われるようなので,辞書順でなく,式の中での出現...
なるほど、貴重なアドバイスを有難うございます。出てきたGar...
テキストを見比べて、自分で式を考えてみたのですが、なかな...
アドバイス頂けると幸いです。宜しくお願い致します。
(fgarchはうまくInstallできなかったため、そちらのマニュア...
ご丁寧にアドバイスをいただいて、有難うございました。)-- [...
**Rのインストールで,メッセージ言語が文字化け [#g5a8a802]
>[[rの初心者]] (2010-08-20 (金) 16:28:28)~
~
//はじめまして。Rについては右も左もわからない初心者です。
とあることでRを用いて多変量解析を行う必要が生じまして、...
//何分素人ですのでわかり易く教えて頂ければ幸いです。
よろしくお願いします。~
//
- 中澤先生の[[統計処理ソフトウェアRについてのTips:http://...
- 回答どうも有り難うございます。解決しました。またよろし...
**TARCH has not been available? [#lcff7c27]
>[[z]] (2010-08-20 (金) 14:29:41)~
~
RでTARCH(Threshold GARCH)をLoopで100社*10年分行おうと...
RでTARCHするのと同じ結果を得られる機能がございましたらご...
宜しくお願いします。~
//
- 自己解決しました。まだベータ版までしか提供されていない...
参照: http://r-forge.r-project.org/projects/rregarch/~
どなかた、その後のUpdateをご存知でしたら、ご案内頂けると...
**forループのリストにベクトルを使ってはいけないのでしょう...
>[[青葉ほととぎす]] (2010-08-20 (金) 14:18:14)~
~
最近、Rでプログラムを始めたものです(Vistaでversion 2.10....
あるプログラムを作っているときに不可解な結果がでて、いろ...
~
以下は、問題の部分だけを抜き出したものです。~
~
初め実験1を行っていたのですが問題があり、実験2のように書...
sim.rate <- seq(0, 1, by=0.01)
result.matrix <- matrix(0, nrow=length(sim.rate), ncol=2)
# 実験1
for(i in sim.rate)
{
result.matrix[i*100, 1] <- result.matrix[i*100, 1]+1
}
# 実験2
for(i in 1:length(sim.rate))
{
result.matrix[i, 2] <- result.matrix[i, 2]+1
}
この2つは以下のような異なる結果を出します。
[,1] [,2]
[1,] 1 1
中略
[27,] 1 1
[28,] 2 1
[29,] 0 1
[30,] 1 1
中略
[56,] 1 1
[57,] 2 1
[58,] 0 1
[59,] 1 1
中略
[95,] 1 1
そこで質問ですが、forループのリストしてベクトルを使っては...
//
- for ループのリストとしてベクトルを使っても,何の差し支...
まず,sim.rate は 0.00 から 1.00 まで 0.01 刻みで 101 個...
> result.matrix[0, 1]
numeric(0)
もう一つは,i は sim.rate という実数値をとるので,0.05*10...
> sim.rate[26:32]
[1] 0.25 0.26 0.27 0.28 0.29 0.30 0.31
> as.integer(sim.rate[26:32]*100)
[1] 25 26 27 28 28 30 31
ようするに,コンピュータの中での実数は(整数値や,2 進数...
実数の計算結果を整数が期待される場所(添え字など)に使っ...
> s <- 0
> for (i in 1:100) s <- s+0.01 # 0.01 を 100 回足し込む
> s # 結果を書いて見ると
[1] 1 # ちゃんと 1 になっているように見えますが
> s == 1 # 1 と等しいかどうか見てみると
[1] FALSE # 1 とは等しくないということがわかります
- とてもわかりやすい解説ありがとうございます。近似値であ...
**Windows7 Home Premiumで最新のRインストールできず [#h41e...
>[[ななしのごんべ]] (2010-08-12 (木) 19:53:54)~
~
Windows7 Home Premiumで最新のRを入れたら、パッケージがイ...
//
- 上の質問者です。igraphパッケージだったのですが、古いバ...
- igraphパッケージはver.0.5.4からiconv.dllが必要になった...
- igraphをver.0.5.4-1にバージョンアップすれば問題ないよう...
**積分した値が計算に使えない [#ma80c2c0]
>[[しょーじん]] (2010-08-11 (水) 14:36:14)~
~
積分した値を計算に使おうと思ったところ,「二項演算子の引...
その値自体を調べると「0.5 with absolute error < 5.6e-15」...
計算に使うためにはどうしたらよいのでしょうか?~
//
- こんなことなのでは? -- &new{2010-08-11 (水) 21:17:53};
> x <- integrate(dnorm, -1.96, 1.96)
> x
0.9500042 with absolute error < 1.0e-11
> x + 2
以下にエラー x + 2 : 二項演算子の引数が数値ではありませ...
> str(x)
List of 5
$ value : num 0.95
$ abs.error : num 1.05e-11
$ subdivisions: int 1
$ message : chr "OK"
$ call : language integrate(f = dnorm, lower = -...
- attr(*, "class")= chr "integrate"
> x$value
[1] 0.9500042
> x$value + 2
[1] 2.950004
- 例えば,integrate 関数の結果を a という変数に付値(代入...
- ありがとうございました.解決しました. -- [[しょーじん]...
**単回帰のデータが認識されない? [#ca069d07]
>[[z]] (2010-08-07 (土) 23:56:43)~
~
OLSを試みています。~
推計式はComp1=α+βcomp0なので、以下の要領で、Syntaxを書...
--Syntax-----
Result1<-lm(comp1~comp0)
--error--------
Error in eval(expr, envir, enclos) : object 'comp1' not ...
利用しているデータは下記の要領で、Comp0-90 まで、Dayは1-1...
day comp0 comp1 comp2 comp3 ...
1 -0.010873538 -0.017208413 0.009237875 0.00000000...
2 0.007344111 -0.001945525 -0.010297483 0.01331360...
3 0.016795163 0.031189084 -0.019653179 0.00291970...
4 0.006113627 0.003780718 0.004716981 0.01018922...
5 -0.002080986 -0.007532957 0.011737089 0.01008645...
6 0.005460344 0.001897533 -0.012761021 -0.02139800...
Comp2以降はLoopでの処理を試みる予定なのですが、Comp1につ...
//初歩的な質問が続いて申し訳ありませんが、ご教示頂けます...
//
- > 式は間違っていないようなのにエラーが出るので、調べ方...
間違えているからエラーが出るのです。謙虚にオンラインヘル...
lm の使い方として,lm(formula, data ... と書かれているで...
Syntax とか Loop とか,SPSS ユーザかと思いますが,速く R ...
>「Comp2以降はLoopでの処理を試みる予定なのですが」と書い...
a <- vector(mode="list", length=90)
for (i in 3:92) {
a[[i-2]] <- lm(d[, 2] ~ d[, i]) # このような使い方のと...
}
また,投稿の仕方(投稿書式)についても確認してください。...
誰でも初心者の時期はあるのですが,初心者だから至らない部...
なんらかの反応があってからと思っていましたが,音沙汰なし...
b <- lapply(paste("comp", 1:90, sep=""), function(x) lm(...
- たぶん下のスレッドと同じ質問者だと思いますが lm(comp1~c...
lm構文については、Suggestionを頂いた通りに実行して、うま...
色々試してはいるのですが、うまくいかないので、引き続き、T...
- 初心者なりにBestを尽くしたのですが、至らず、すみません...
lm構文については、Suggestionを頂いた通りに実行して、うま...
例えば、~
for (i in comp1: comp90){lm(d[,0]~d[,i])}
としてみたのですが、以下のようなErrorが出ました。 -- [[z]...
> for (i in 1:90) {
+ lm(d[, 0] ~ d[, i])
+ }
Error in eval(expr, envir, enclos) : object 'd' not foun...
> for (i in 3:92) {
+ lm(result1[, 0] ~ result1[, i])
+ }
Error in result1[, 0] : incorrect number of dimensions
> for (i in comp1:comp89) {
+ lm(result1[, 0] ~ result1[, i])
+ }
Error: object 'comp89' not found
> for (i in comp1:comp3) {
+ lm(result1[, 0] ~ result1[, i])
+ }
Error in result1[, 0] : incorrect number of dimensions I...
Warning messages:
1: In comp1:comp3 : numerical expression has 150 eleme...
2: In comp1:comp3 : numerical expression has 150 eleme...
> lm(result1[, 0] ~ result1[, i])
- でたらめにやってもダメです。~
for (i in comp1: comp90){lm(d[,0]~d[,i])}では,i は com...
それと,「Comp1をComp0で回帰、Comp2をComp1 で回帰、Comp3...
以下では,上に示した要素(day, comp0, comp1, comp2, comp3...
a <- vector("list", length=4) # lm の結果は list なので...
for (i in 3:6) { # i は順に 3, 4, 5, 6 をとる
a[[i-2]] <- lm(d[, i] ~ d[, i-1]) # i=3 のとき,a[[1]] ...
}
a
# function には順に 1, 2, 3, 4がわたされ,
# lm(eval(parse(text="comp1")) ~ eval(parse(text="comp0"...
# 最終的には lm(comp1 ~ comp0, data=d) が実行される "com...
b <- lapply(1:4, function(i) lm(eval(parse(text=sprintf(...
eval(parse(text=sprintf(...
b
# lapply っていったって,for とそうは変わらないのだ
C <- vector("list", length=4)
for (i in 1:4) {
C[[i]] <- lm(eval(parse(text=sprintf("comp%i", i))) ~
eval(parse(text=sprintf("comp%i", i-...
}
C
それぞれの関数の引用について,なにをやっているのかを確認...
回答方法について色々言う(後は自分で調べてとか,偉そうに...
> a <- vector("list", 10)
> class(a) # vector は第一引数で指定するオブジェクトを
[1] "list"
> length(a) # 第二引数で指定する個数分用意する
[1] 10
> a[[2]] <- c(1, 3, 5) # リストの2番目の要素に付値(代入...
> a[[2]] # 結果を表示してみる
[1] 1 3 5
> parse(text="comp1")
expression(comp1) # comp1 が作られるが,それは expressio...
attr(,"srcfile")
<text>
> comp1 = "test dummy" # 例えば comp1 が "test dummy" と...
> eval(parse(text=sprintf("comp%i", i)))
# これは,comp1 ということになり,それを print で表示す...
[1] "test dummy"
> print(eval(parse(text=sprintf("comp%i", i)))) # 上と同じ
[1] "test dummy"
これくらい冗長に書けばよいかな? -- [[河童の屁は,河童に...
- 混乱したままの質問を投げてしまったのに、親切丁寧にコメ...
- 上記の結果を使って下記のようにgqtestをしてみたのですが...
gqt<-lapply(1:88, function(i){
gqtest( lapply(1:88, function(i){
lm(eval(parse(text=sprintf("comp%i", i))) ~ eval(par...
}), data= dataset,fraction=50, order.by=NULL) })
Error in terms.default(formula) : no terms component
どうアレンジしたら良いのでしょう? 調べ方等、アドバイス...
宜しくお願い致します。 -- [[z]] &new{2010-08-31 (火) 19:...
- ページが横に伸びて見づらかったため、勝手ながらコードの...
**+が勝手に出て、構文が使えない。 [#x363e4bc]
>[[z]] (2010-08-07 (土) 21:47:40)~
~
//初歩のしにもならないような質問で恐縮ですが、
二進も三進も行かず、困っています。データを読み込む行はエ...
例えば、下記のようになります。
dataset<-read.csv("C:/Users/(myname)/Documents/(folderna...
+ attach (dataset)
+
//
- read.csv(file=file.choose()) として、ダイアログから選ん...
- うまくいきました =) 有難うございます! -- [[z]] &new{...
- .csv の次の二重引用符が " でなくて ” ですね。read.csv("...
**行列データの要素計算方法について [#ia642c93]
>[[森の熊五郎]] (2010-08-05 (木) 16:21:03)~
X <- c(0.1, 0.2, 0.3, 0.4)
Y <- c(0.3, 0.5, 0.8, 0.5)
Z <- c(0.6, 0.5, 0.7, 0.9)
sum(X)
sum(Y)
A <- rbind(X, Y)
sum(A)
sum(Z)
B <- rbind(A, Z)
sum(B)
この式を繰り返し文 forを使って実行する方法を知りたい。~
~
BASICでは例えば、A(20,10)の各要素を足し算する方法として
S=0
for I=1 to 20
for J=1 to 10
S=S+a(i,j)
next
next
なる文にて計算が出来ますが、Rの場合、内側のループはsum文...
//
- なぜそのようなことをしたいのかはさておき、rbind 関数を ...
A <- matrix(1:16, nrow=4, ncol=4)
B <- matrix(1:20, nrow=4, ncol=5)
nrA <- nrow(A)
ncA <- ncol(A)
ncB <- ncol(B)
S <- matrix(NA, nrow=nrA, ncol=ncA+ncB)
for (i in 1:nrA) {
for (j in 1:ncA) S[i,j] <- A[i,j]
for (j in 1:ncB) S[i,j+ncA] <- B[i,j]
}
# もし一重ループなら
S <- matrix(NA, nrow=nrA, ncol=ncA+ncB)
for (i in 1:nrA) {
S[i,1:ncA] <- A[i,]
S[i,ncA+1:ncB] <- B[i,]
}
- 質問文が意味不明~
sum(X) とか sum(A) とか,なにやっているんでしょうか。やり...
一般的には,「○○を使って□□をやりたい」というのではなく,□...
rbind を for でやるという意味じゃないんでしょ?もしそうだ...
a <- rbind(X, Y, Z)
S <- 0
for (i in 1:nrow(a)) {
for (j in 1:ncol(a)) {
S <- S+a[i, j]
}
}
print(S)
# 内側のループはsum文で というへんな要望に答えるなら
a <- rbind(X, Y, Z)
S <- 0
for (i in 1:nrow(a)) {
S <- S+sum(a[i, ])
}
print(S)
# でもそんなことする必要もなくて
a <- rbind(X, Y, Z)
S <- sum(a)
print(S)
# rbind する必要さえなくて
print(sum(c(X, Y, Z)))
# どれも,あなたのプログラムの最後に sum(B) としたのと同...
# それともまさか,
S <- 0
for (i in c("X", "Y", "Z")) {
S <- S+sum(eval(parse(text=i)))
}
print(S)
# または
S <- 0
for (i in c(X, Y, Z)) {
S <- S+sum(i)
}
print(S)
# みたいなのをお望みで?まさかね〜
**memory.limiitについて [#w678e628]
>[[yoshi]] (2010-08-02 (月) 14:56:40)~
~
memory.limit()について質問です。~
R上で~
> memory.limit()~
[1] 1535~
> memory.limit(T)~
[1] 12~
> memory.limit(F)~
[1] 10~
となります・ここで~
> memory.limit(4000)~
[1] 4000~
とした後は~
> memory.limit()~
[1] 4000~
> memory.limit(T)~
[1] 12~
> memory.limit(F)~
[1] 10~
となります。ここで質問なんですが「memory.limit()」「memor...
//
- 付け足しですが、私が使っているパソコンはWindows 7 Profe...
- ? memory.limit してみなさい。 -- [[河童の屁は,河童にあ...
**パッケージ「R.huge」の読み込み方法 [#ub1df349]
>[[yoshi]] (2010-08-02 (月) 10:49:35)~
~
パッケージ「R.huge」のパッケージの読み込みが上手くいきま...
私がやったことは~
�CRANミラーサイトから「R.huge」のzipファイルをダウ...
�RのGUIで「ローカルにあるzipファイルからのパッケー...
→RのGUI上では「パッケージ 'R.huge' は無事に開封され、MD5 ...
�RのGUIで「パッケージの読み込み」で「R.huge」を選...
→RのGUI上で「要求されたパッケージ R.oo をロード中です ~
エラー: パッケージ 'R.oo' をロードできませんでした ~
追加情報: 警告メッセージ: ~
In library(pkg, character.only = TRUE, logical.return =...
'R.oo' という名前のパッケージはありません 」と表示
~
このように�までは良いと思うのですが、�でエ...
~
これを解決する方法を自分でも探したのですが分らなかったた...
//
- R.huge は R.oo に依存します.R.oo はインストールしてあ...
- そーいうことだったんですね汗 R.hugeを読み込むことがで...
- 全部書く前に挿入してしまいました。 「R.huge」は読み込...
- 書き込み整理してください -- &new{2010-08-02 (月) 20:15...
**2進数表記した時、右から数えて最初にゼロが出現する桁数 ...
>[[aMC]] (2010-08-01 (日) 06:07:54)~
~
たとえば、2→10なので1桁目、5→101なので2桁目、7→0111なので...
//
- 下の応用。which(intToBits(7)==0) [1] など。内部ではルー...
- 反応がないようですが,反応を待つよりは自分で書いた方が...
> i2b <- function(x)
+ {
+ res <- integer(32)
+ for (i in 1:32) {
+ res[i] <- x %% 2
+ x <- x %/% 2
+ }
+ return(rev(res))
+ }
> b2i <- function(x)
+ {
+ return(sum(x*2^(31:0)))
+ }
> (a <- i2b(615729635))
[1] 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1...
> (b <- b2i(a))
[1] 615729635
> which(rev(a)==0)[1]
[1] 3
繰り返しておきますが,このプログラムが効率が悪いと言って...
- ありがとうございます。すっきり書けるようになりました。 ...
- このようなのはどうでしょう。 -- [[柳]] &new{2010-08-03 ...
cnt <- function(vector) {
x <- abs(vector)
z <- x * 0 + 1
times <- max(floor(log(max(x), 2)), 0)
for(i in 1:times) {
y <- x
x <- x * 0 - 1
x <- x + (y %% 2 != 0) * (y + 1) / 2
z <- z + (x != -1)
}
return(z)
}
- 投稿の作法を学びなさい(ちゃんと対応しないから,柳君の...
- f<-function(x){(1:32)[!as.logical(intToBits(x))][1]} --...
- もう一つ別解を。これは二進法でn桁目が0なら2^(n-1)で割っ...
> foo <- function(x){a <- ceiling(log2(x));
suppressWarnings(min(which((floor(x/2^(0:(a-1...
> foo(1*2^5+1*2^4+1*2^3+1*2^2+1*2+1)
[1] Inf
> foo(1*2^5+1*2^4+1*2^3+1*2^2+0*2+1)
[1] 2
> foo(1*2^5+1*2^4+1*2^3+1*2^2+0*2+0)
[1] 1
> foo(1*2^5+1*2^4+1*2^3+0*2^2+1*2+1)
[1] 3
> foo(1*2^5+0*2^4+1*2^3+0*2^2+1*2+1)
[1] 3
> foo(1*2^5+0*2^4+1*2^3+1*2^2+1*2+1)
[1] 5
**b進展開(10進数→2進数、2進数→10進数)関数 [#d970a...
>[[qMC]] (2010-07-31 (土) 22:56:24)~
~
10進数→2進数、あるいは2進数→10進数へと変換する関数...
//
- intToBits および packBits -- [[河童の屁は,河童にあらず...
**Rscriptでコードを実行するとグラフに文字化けが発生 [#ic3...
>[[りりぽん]] (2010-07-31 (土) 11:56:57)~
~
Rscriptで次のように、test.Rを実行させると、グラフタイトル...
###### test.bat ###################
C:\R-2.11.1-x64\bin\Rscript test.R
####### test.R ####################
postscript(file="test.eps", horizontal=F, family="Japan1...
plot(1:10, main="日本語")
dev.off()
###################################
使用フォーマット・R環境:
ソースコード;UTF-8(BOMなし)エンコード
コマンドプロンプト;cp932;MSゴシック
R version 2.11.1 (2010-05-31)
x86_64-pc-mingw32
locale:
[1] LC_COLLATE=Japanese_Japan.932 LC_CTYPE=Japanese_Jap...
[3] LC_MONETARY=Japanese_Japan.932 LC_NUMERIC=C
[5] LC_TIME=Japanese_Japan.932
//
- 64ビット版ですか。私には追試できませんでした。少なくと...
- 問題継続中ですが、追試いただきありがとうございました。 ...
**forを使って変数を作成したい [#a20ae84b]
>[[basel_firb]] (2010-07-29 (木) 15:18:47)~
~
過去に「行列にfor文中の変数を含んだ名前をつける 」という...
~
データフレームに、変数var1 var2 var3・・・var68というのが...
//
- 多くの場合 eval(parse(text=...)) は不要です。データフレ...
h <- (d/d[,-68])[,-68]
colnames(h) <- paste("h", 1:67, sep="")
で十分です。 -- [[河童の屁は,河童にあらず,屁である。]] ...
- ありがとうございます。よくわかりました。 -- [[basel_fir...
- 横から初心者の質問をさせて下さい。h <- (d/d[,-68])[,-68...
- そうですね -- [[河童の屁は,河童にあらず,屁である。]] ...
- お返事ありがとうございます。ちょっとエラーが出たり,違...
**Rのメモリ使用量 [#za198dff]
>[[sano]] (2010-07-29 (木) 12:39:07)~
~
こんにちは、hclustで階層的クラスタリングを行おうとすると、
サイズ 3.4 Gb のメモリブロックを割り当てることができませ...
とエラーメッセージが出てしまいます。~
OSはwindows7,Rのversionは version 2.11.1(64bit), メモリ...
> memory.limit(T)
と実行すると、
[1] 7363
と表示されるので、Rが物理メモリを7GBしか、OSから割り当て...
30GB割り当ててもらおうと、
> memory.limit(30000)
と入力すると、
[1] 49149
警告メッセージ:
In memory.size(size) : メモリー限界を減らすことができま...
と表示され、うまくいきませんでした。~
CPUがデュアルCPUでメモリを片側24GBずつ積んでいるのですが...
いろいろ調べてみたのですが、どうにもいかず、投稿させて頂...
お教えいただければ、幸いです。よろしくお願い致します。~
//
- 申し遅れました。hclustは3万×3万の距離行列を入力としてい...
- FAQ のようですけど。[[Windows版RのFAQ 2.7 R が使うメモ...
大元は[[R for Windows FAQ:http://cran.r-project.org/bin/w...
Version for R-2.11.1 と表題にあり,内容も少し違っているよ...
- ご回答いただき、ありがとうございます。> tmp<-diag(1,463...
- 3万だと, 私のマシンで2カ月ほど処理時間がかかると思いま...
- コメントありがとうございます。cluster packageのagnes関...
- たぶん,対象数の二乗に比例する時間が必要なので,1000,2...
- サンプル数3万ですと、プロットしても解釈できないので、cu...
- 72時間ほどで計算できました。hclustでエラーになりagnesで...
**T,Fを文字列として出力するには [#i20d18d0]
>[[sayaka]] (2010-07-26 (月) 11:59:13)~
~
いつも参考にさせていただいております。自分でも本やGoogle...
//本当に初歩的な質問で申し訳ありませんが、どうぞご教授よ...
~
以下のようなデータ"test_data.csv"があるとき
"T","T"
"T","F"
"T","T"
"F","F"
data <- read.csv("test_data.csv",header=F)
というようにread.csvを使ってデータを読み込むと、以下のよ...
> data
V1 V2
1 TRUE TRUE
2 TRUE FALSE
3 TRUE TRUE
4 FALSE FALSE
//非常に初歩的な質問で申し訳ありません。
どうぞよろしくお願い致します。~
//
- T,F はRでは特別な意味を持ちますから最初から使わないのが...
> data <- read.csv("test_data.csv",header=F)
> data
V1 V2
1 T T
2 T F
3 T T
4 F F
5 A A
> data[-nrow(data),]
V1 V2
1 T T
2 T F
3 T T
4 F F
> str(data[-nrow(data),]) # 因子水準に "A" が残りますが...
'data.frame': 4 obs. of 2 variables:
$ V1: Factor w/ 3 levels "A","F","T": 3 3 3 2
$ V2: Factor w/ 3 levels "A","F","T": 3 2 3 2
- 読み込んだ後,data <- sapply(data, function(x) ifelse(x...
- お二方、ご回答頂きありがとうございます。お二方のご回答...
- 追加コメント.河童さんのやり方は明快でお勧めですが,結...
> data <- read.csv("test_data.csv",header=F)
> is.data.frame(data)
[1] TRUE
> data <- lapply(data, function(x) ifelse(x, "T", "F"))
> is.data.frame(data)
[1] FALSE
> is.list(data)
[1] TRUE
> data <- as.data.frame(data)
> is.data.frame(data)
[1] TRUE
> data
V1 V2
1 T T
2 T F
3 T T
4 F F
- あなたは lapply を使ったので戻り値は list になりました...
- お二方、追加コメントありがとうございます。ちなみに、私...
- T, F 以外の文字列が含まれているものを read.table("ファ...
ちなみに,上の無名コメンテータのプログラム例だと,ご本人...
どんなプログラムを書いたのかなかなかアップできないようで...
ちびちびと小出しにするのではなく,聞きたいことをはっきり...
- コメントありがとうございます。小出しに質問してしまって...
T,T,A
T,F,A
T,T,A
F,F,A
fixTF <- function(x) {
if (is.logical(x)) {
return(ifelse(x, 'T', 'F'))
}else {
return (x)
}
}
data <- read.csv("test_data.csv", header=FALSE)
data1 <- lapply(data, fixTF)
data1 <- as.data.frame(data1)
data1
V1 V2 V3
1 T T A
2 T F A
3 T T A
4 F F A
以上のようにうまくいきました。もっとよく勉強します。あり...
- なるほど,T, F のある列は T, F だけなんですね。だったら...
- 重ねてコメントありがとうございます。質問が言葉足らずで...
**式が上手く評価されない? [#ede0fcf9]
>[[em]] (2010-07-21 (水) 01:30:51)~
~
runif()関数を使って一様乱数を生成し、0〜100の範囲に変換し...
x <- round(runif(100), 2) * 100
ここで、7の出ている回数を調べようと
length(x[x==7])
とやると、実際にはベクトルxに7が含まれていても、0になって...
また、x[x==7]のような式の結果もnumeric(0)となってしまいま...
どこがまずいのでしょうか?~
//
- 見かけは整数でも実際は実数とみなされているからでしょう....
- 理由と対処法は上のコメントの通りです。length(x[as.integ...
また,このようなことを避けるため,整数の一様乱数を生成す...
- お二方、ご回答有難うございます。 なるほど内部では実数...
- 本来は,コンピュータ上での実数は近似値に過ぎません。た...
> x <- 0
> for (i in 1:100) x <- x+0.01
> x # x を表示させると 1 になっているけど
[1] 1
> x == 1 # 0.01 を 100 回足しても 1 にはなっていない
[1] FALSE
> (a <- round(0.0718*100))
[1] 7
> a == 7 # この場合は 7 だけど
[1] TRUE
> (b <- round(0.0718, 2)*100)
[1] 7
> b == 7 # このようにして得られた数値は 7 ではない
[1] FALSE
> all.equal(b, 7) # testing ‘near equality’ all.equal ...
[1] TRUE
> identical(b, 7) # being exactly equal
[1] FALSE
- 河童の屁は,河童にあらず,屁である。さん、追加の質問に...
**デンドログラムのデータNo.の表示指定 [#x638a0ac]
>[[hashiro]] (2010-07-18 (日) 16:50:49)~
~
「Rによる統計解析」を読みながらクラスター分析を行っていま...
エクセルで、194の変数、160行のデータです。~
R内に読み込んでデンドログラムまでは出来ました。~
この時、デンドログラム最下段には1〜160までのNo.が表示され...
この数字をエクセルのa列の文字で表示したいのです。~
plotの中にlabels= で指定すればいいみたいですが、指定の仕...
指定方法をどうか教えていただけませんか。~
//
- どのように指定したら、どのようなエラーが出たんでしょう...
- plot(ans, labels = f.xls[sheet1$a2:a161], hang=-1, cex=...
- 要素の指定方法で解決できました。ありがとうございました...
**相関ルールについて [#ze69c6ad]
>[[t_y]] (2010-07-16 (金) 10:57:30)~
~
//初心者なのでよろしくおねがいします。~
今現在相関ルール抽出のパッケージ「arules」を用いているの...
買い物バスケットで以下の例があるとします。
TID アイテム集合
1 {パン、牛乳}
2 {ハム、牛乳}
3 {ビール、たばこ}
このデータを「data」に代入します。
> data <- list(c("パン", "牛乳"), c("ハム", "牛乳"), c("...
そして transactions 形式のデータを「data.tran」に代入しま...
> data.tran <- as(data1, "transactions")
次に相関ルール「data.ap」に生成します
> data.ap <- apriori(data.tran)
生成された相関ルールは以下の 3 つです。
lhs rhs support
1 {パン} => {牛乳} 0.3333333
2 {ハム} => {牛乳} 0.3333333
3 {ビール} => {たばこ} 0.3333333
相関ルールは lhs⇒rhs で「lhs が存在する場合に rhs が存在...
Support は「特定のルールの数÷全てのルール」です。例えば{...
~
ここでもしアイテム「パン」と「牛乳」が新たなアイテム「食...
属した場合の相関ルールの例を載せます
lhs rhs support
1 {食べ物} => {牛乳} 0.6666666
2 {パン} => {牛乳} 0.3333333
3 {ハム} => {牛乳} 0.3333333
4 {ビール} => {たばこ} 0.3333333
このように「食べ物」の中に「パン」と「ハム」が含まれてい...
しかし、data2 に以下のように代入し、
> data2 <- list(c(“食べ物”, ”牛乳”), c("パン", "牛乳"), ...
+ c("ビール", "たばこ”))
同様に相関ルールを作成すると、
lhs rhs support
1 {パン} => {牛乳} 0.25
2 {ハム} => {牛乳} 0.25
3 {ビール} => {たばこ} 0.25
4 {食べ物} => {牛乳} 0.25
のようになり support の値が変化してしまいます。~
これを解消する方法を教えて下さい。~
//
**SensomineRの分散分析でのエラー [#n06061a1]
>[[Sensory]] (2010-07-15 (木) 19:17:26)~
~
//お世話になります.Rも、プログラミングも完全に初心者です...
//~
分散分析を行うと出現するエラーについてです.R,Rcommander,...
~
何か解決策があれば教えて頂けないでしょうか.よろしくお願...
//
- なぜ,なかなか,回答が,得られないか。~
あなたが,何を,どうやったか,よくわからないからではない...
コンソールに入力したものをそのままコピーするだけでも,回...
私にはわからないけど,きっと他の誰かが答えてくれるでしょ...
**Rによる、SPSSファイルからSTATAファイルへの変換の仕方に...
>[[大学生]] (2010-07-12 (月) 20:25:01)~
~
//お世話になります。Rも、プログラミングも、完全に初心者の...
SPSSファイルを、STATAファイルに変換したいのですが。
library(foreign)
read.spss("datafile",use.value.labels=FALSE)
で、SPSSファイルを読み込んだあと、そのまま、STATAファイル...
~
Rのバージョンは2.8.1で、MACです。どうかよろしくお願いしま...
//
- 何となくのコメントで申し訳ないですが,あるアプリケーシ...
大多数のアプリケーションプログラムが共通して読み込めるデ...
というか,多くのアプリケーションプログラムは,他のアプリ...
そういうことが期待できないにしても,別に R が仲立ちをしな...
いずれの場合も,書き出された CSV を直接読み取るに当たって...
まずは,それぞれ(今の場合は SPSS とSTATA か)の機能(マ...
Stat/Transfer というデータ変換ソフト(有償)があるようで...
> Rのバージョンは2.8.1~
当面の問題には関係ないことですし余計なお世話ですけど,自...
- コメントありがとうございます。SPSSファイルを読み込める...
- このwikiを"stata"で検索してみてください。私はstataは使...
- library(foreign) write.dta(ここにRのデータフレーム名,f...
- > SPSSファイルを読んだ直後のフレーム名ってなんですか~
read.spss で読み込んで付値したデータフレーム名のことです...
データフレームに付値する必要がなければ,write.dta(read.sp...
- いろいろいじったらできました、ありがとうございました。 ...
**3次元グラフにおける座標点の表示 [#j4b52501]
>[[メジロウ]] (2010-07-09 (金) 21:24:59)~
~
マトリックスを3次元グラフで描画した時、x、y、zの座標まで...
~
x、y、zの座標点を取り除き、純粋に数値の座標点のみを頂...
~
打ち込んだコマンドラインは以下の通りです
jhin <-matrix(c(
1.1479, 0.8587, 0.8719,
-1.099, 0.353, 0.972,
-1.3226, -0.4005, -0.9295,
-0.4804, -0.7637, -1.3671,
-0.1707, -1.3382, 1.1815,
0.2106, 0.7653, -1.7421,
0.3761, 1.8047, 0.0608,
0.4473, -1.3014, 0.7972,
1.625, 0.7415, 0.5675,
1.5616, -0.7194, -0.4122),
nrow = 10, ncol = 3)
jhin
rownames (jhin) <- paste("in", 1:10, sep="")
colnames (jhin) <- c("X", "Y", "Z")
jhin
rg <-jhin
library(sna)
gplot3d(rg, thresh = 1.1, displayisolates = TRUE, suppre...
displaylabels = TRUE, xlab = "dimension 1",
ylab = "dimension 2", zlab = "dimension 3")
//
- 例としてあげられた jhin は三次元の座標が 10 組というこ...
- そうです。コマンドラインの上部にある10組の座標(jhin...
- コマンドラインを修正しました。しかし、頂点の数は変わら...
- そういうことを言っているのではなく,gplot3d は 3 次元空...
library(rgl)
x <- c(0,1,1,0,0,1,1,0)
y <- c(0,0,1,1,0,0,1,1)
z <- c(0,0,0,0,1,1,1,1)
library(scatterplot3d)
plot3d(x, y, z, size=20, col=2)
library(sna)
gplot3d(cbind(x, y, z))
> cbind(x, y, z)
x y z
[1,] 0 0 0
[2,] 1 0 0
[3,] 1 1 0
[4,] 0 1 0
[5,] 0 0 1
[6,] 1 0 1
[7,] 1 1 1
[8,] 0 1 1
&ref(plot3d.png);
- お返事ありがとうございます。立方体の頂点を表示したい訳...
- 別に立方体の頂点を表示したいわけでないのは重々承知して...
example にある,gplot3d(rgws(1,5,3,1,0)) をやってみても,...
rgws(1,5,3,1,0) は 125 × 125 の matrix で,描かれるのは 5...
「x、y、zの座標まで、グラフ内に頂点として表示されてしまい...
&ref(glid.png);
- 状況が伝わりづらくて申し訳ありません。私は10個の座標...
- なんだぁ。最初っからそういえばよいのに。jhin を使って例...
> library(sna)
> gplot3d((as.matrix(dist(jhin)) <= 1.1)+0)
&ref(jhin.png);~
(as.matrix(dist(jhin)) <= 1.1)+0 は,以下のような行列です...
> (as.matrix(dist(jhin)) <= 1.1)+0
in1 in2 in3 in4 in5 in6 in7 in8 in9 in10
in1 1 1 0 0 0 0 0 0 0 0
in2 1 1 0 0 0 0 0 0 0 0
in3 0 0 1 0 0 0 0 0 0 0
in4 0 0 0 1 0 0 0 0 0 0
in5 0 0 0 0 1 0 0 0 0 0
in6 0 0 0 0 0 1 0 0 0 0
in7 0 0 0 0 0 0 1 0 0 0
in8 0 0 0 0 0 0 0 1 0 0
in9 0 0 0 0 0 0 0 0 1 0
in10 0 0 0 0 0 0 0 0 0 1
ラベルをつけたりなんだらかんだらは自分でやってください。~
なお,見て分かるように,各点は jhin の三次元座標を使って...
たぶん,それは,あなたにとっては不本意でしょうが,そもそ...
- なぜあなたが gplot3d にこだわるのか分からないけど,三次...
library(rgl)
plot3d(jhin, type="s", col=4, radius=0.05)
text3d(jhin, text=1:10, adj=2)
d <- as.matrix(dist(jhin))
con <- which(d <= 1.5, arr.ind=TRUE)
apply(con, 1, function(xy) lines3d(jhin[xy,], lwd=3, col...
&ref(jhin2.png);~
jhin を例としましたが,見栄えをよくするため,距離が 1.5 ...
**Dataframeからある特定の因子を持つ行を抜き出したい [#z40...
>[[hello r]] (2010-07-09 (金) 15:46:59)~
~
ググッたり、ここのDatagram tipsを見たのですが、解決しなか...
~
CSVファイルから読み込んだファイルに因子が含まれています。~
t s
1 3755 sd
2 3840 sd
3 3856 si
4 3884 sd
5 4011 si
6 4031 sd
7 4033 sd
8 4115 sd
9 4147 si
10 4157 si
~
ここから因子ごとにdataframeを分離したいと考えています。~
因子でなければ~
v <- dataframe[,"s"] == "sd"
dataframeSD <- dataframe[v,]
などとして抽出できると思うのですが、最初の因子の比較がDat...
どのように対処すればよいでしょうか。~
もしよろしければご教授願えないでしょうか。~
よろしくお願いします。~
//
- データフレームを d とすれば,split(d, d$s) -- [[河童の...
- ありがとうございます。それでうまくプログラムを組めまし...
- あなたが上に書いたことをやってみなかったのですか?ちゃ...
> v <- dataframe[,"s"] == "sd"
> dataframeSD <- dataframe[v,]
> dataframeSD
t s
1 3755 sd
2 3840 sd
4 3884 sd
6 4031 sd
7 4033 sd
8 4115 sd
split を使う方法を示したのは,その方が汎用性が高いから。 ...
- ええと、私のやりかたがまずいのかもしれませんが、vが全て...
> v <- df[,2] == "si"
> v
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FAL...
- class(d[,2]) としたら何が表示されますか?私の場合は,fa...
> v <- d[,2] == "si"
> v
[1] FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE TR...
> class(d[,2])
[1] "factor"
**メトロポリス法によるパラメータ推定プログラムを自作する...
>[[Saito]] (2010-07-06 (火) 00:54:49)~
~
いつもお世話になっています。~
ググっても、過去ログを漁っても、持っている本を読んでも、...
都合により、メトロポリス法によるパラメータ推定プログラム...
~
set.seed(1)
iter <- 20000
###真の値###
a <- 10
b <- 2
x <- seq(0.01, 1, length=500)
y <- b*x + rnorm(500, a, 1)
###尤度の計算(!!!対数にはしていない!!!)###
cost_func2 <- function(a3, b3) {
sum(dnorm(y, a3 + b3*x, 1))
}
###乱数と初期値の設定###
u <- runif(iter, 0, 1)
u2 <- runif(iter, 0, 1)
a4 <- b4 <- numeric(iter+1)
a4[1] <- b4[1] <- 5
lag <- 4
###メトロポリス法(?)の実行###
for(i in 1 : iter) {
a4_2 <- a4[i] + runif(1, -lag, lag)
b4_2 <- b4[i] + runif(1, -lag, lag)
###一つ前のサンプルで計算されるcost_funcの値が近すぎると...
a4[i+1] <- ifelse(u[i] < cost_func2(a3=a4_2, b3=b4[i])/
cost_func2(a3=a4[i], b3=b4[i]),
a4_2, a4[i])
b4[i+1] <- ifelse(u2[i] < cost_func2(a3=a4[i+1], b3=b4_2)/
cost_func2(a3=a4[i+1], b3=b4[i...
b4_2, b4[i])
}
hist(a4[(iter/2):iter])
hist(b4[(iter/2):iter])
~
疑問点は二つです。メトロポリス法の場合でも、尤度を計算す...
もう一つの疑問は、メトロポリス法では、上記のように比を取...
~
このようなことを避けるにはどうすればよいのでしょうか。~
上記のプログラムですと、a4とb4の平均値がそれぞれ10と2にな...
~
どなたかわかる方がいましたら、ご教授のほどよろしくお願い...
なお、環境はWindows7, R-2.11.1です。~
//
- メトロポリス法については知らなかったのですけど,a4, b4 ...
以下のように修正するとそれらしき値が推定できますけど? --...
a4[i+1] <- ifelse(cost_func2(a3=a4_2, b3=b4[i]) > cost_f...
a4_2, a4[i])
b4[i+1] <- ifelse(cost_func2(a3=a4[i+1], b3=b4_2) > cost...
b4_2, b4[i])
:
> mean(a4)
[1] 10.05778
> mean(b4)
[1] 1.890743
- 早速の回答ありがとうございます。確かに、示してくださっ...
- 資料をもう一度よく読んでください。f(x)は尤度関数ではな...
- 回答ありがとうございます。ええと、尤度関数でなく確率密...
- 確率密度関数なので,負の値にはならないというのは了解で...
- 早速の返信ありがとうございます。確かに確率密度ですと負...
- sum(dnorm(y, a3 + b3*x, 1)) が尤度になるということにつ...
- ええと、クリティカルな参考書はありません。しかし、平均...
- なぜ確率密度関数の対数をとるのですか? 誤解を恐れずに簡...
- メトロポリス法で分布パラメータを推定するには二つの方法...
- > surgさん。なぜ・・・といわれると、確かに困りますね。...
likelihood <- 1
likelihood2 <- 0
cost_func2 <- function(a3, b3) {
for (i in 1 : length(y)) {
likelihood2 <- likelihood * dnorm(y[i], a + b*x[i], 1)
likelihood <- likelihood2
}
return(likelihood2)
}
などとして、対数を取らずに尤度の積を計算するようにしても...
- できれば、optimを使わず、自分で作りたいと思っています。...
- すみません、河童の屁は,河童にあらず,屁であるさん。あ...
- 何も分からないので教えてください。~
(1) sum(dnorm(y, a3 + b3*x, 1)) が尤度を求めるものだとし...
(2) 結果の後半だけ a4[(iter/2):iter] を使う理由は何でしょ...
- まず(1)ですが、確かに、このような線形回帰の場合、i.i.d...
二つ目は、初期値依存を消すためです。今回は適当に初期値4か...
- 最初の質問への返答です。条件 U < L1/L2 の対数版は log(...
- > 一様乱数 U は毎回新しいものを使うんですよ~
最初に必要なだけ生成してておいて,u[i] のように,毎回違う...
- おっとそうでした。最終的に何をしたいのかよく分かりませ...
- >U < L1/L2 の対数版は log(U) < log(L1)-log(L2) でしょ...
>(a_1,b_1) -> (a_2,b_2) のように一斉に変更するか、そのま...
>なぜデータが最初にでてくるのか分かりません。
いえ、単に線形回帰のパラメータ推定の際に、メトロポリスで...
- >なぜ尤度の計算をするときに対数化をするのか: 計算機に...
- >totoさん:対数化をするのは桁落ちを防ぐためなのですね...
- みなさんからの意見を加えて、このように改良致しました。...
set.seed(1)
iter <- 20000
###真の値###
a <- 10
b <- 2
x <- seq(0.01, 1, length=500)
y <- b*x + rnorm(500, a, 1)
###正規化定数抜きの事後分布の計算###
###桁落ちするので、log(exp(1))を加えて、必ず1以上の数を...
###マジメにa,bの事前分布を設定。真の値から平均を-1だけず...
cost_func2 <- function(a3, b3) {
sum(log(log(exp(1)) + dnorm(y, a3 + b3*x, 1)*dnorm(a3, a...
}
###乱数と初期値の設定###
u <- runif(iter, 0, 1)
u2 <- runif(iter, 0, 1)
a4 <- b4 <- numeric(iter+1)
a4[1] <- b4[1] <- 5
lag <- 4
###メトロポリス法の実行###
for(i in 1 : iter) {
a4_2 <- a4[i] + runif(1, -lag, lag)
b4_2 <- b4[i] + runif(1, -lag, lag)
###a, bは一斉に値を更新するように変更###
if (u[i] < cost_func2(a3=a4_2, b3=b4_2)/
cost_func2(a3=a4[i], b3=b4[i])) {
a4[i+1] <- a4_2
b4[i+1] <- b4_2
} else {
a4[i+1] <- a4[i]
b4[i+1] <- b4[i]
}
}
###a, bの事後分布###
hist(a4[(iter/2):iter])
hist(b4[(iter/2):iter])
> mean(a4[(iter/2):iter])
[1] 9.688851
> mean(b4[(iter/2):iter])
[1] 2.424549
しかし、やはり対数の比のところはそのままの問題が残ってい...
- Saitoさんが想定されているモデルだと,事後密度は,prod(d...
- 対数とはいえ、前の対数尤度と今回の対数尤度の比を取るの...
set.seed(1)
iter <- 20000
###真の値###
a <- 10
b <- 2
c <- 1
x <- seq(0.01, 1, length=500)
y <- b*x + rnorm(500, a, c)
###正規化定数抜きの事後分布の計算###
###マジメにa,b.cの事前分布を設定###
cost_func2 <- function(a3, b3, c3) {
sum(log(dnorm(y, a3 + b3*x, c3)*
dnorm(a3, a-1, 100)*dnorm(b3, b-1, 100)*dgamma(c...
}
###乱数と初期値の設定###
u <- runif(iter, 0, 1)
a4 <- b4 <- c4 <- numeric(iter+1)
a4[1] <- b4[1] <- c4[1]<- 5
lag <- 0.4
###メトロポリス法の実行###
for(i in 1 : iter) {
a4_2 <- a4[i] + runif(1, -lag, lag)
b4_2 <- b4[i] + runif(1, -lag, lag)
c4_2 <- c4[i] + runif(1, -lag, lag)
###a, b, cは一斉に値を更新するように変更###
if (log(u[i]) < cost_func2(a3=a4_2, b3=b4_2, c3=c4_2)-
cost_func2(a3=a4[i], b3=b4[i], c3=c4[i])) {
a4[i+1] <- a4_2
b4[i+1] <- b4_2
c4[i+1] <- c4_2
} else {
a4[i+1] <- a4[i]
b4[i+1] <- b4[i]
c4[i+1] <- c4[i]
}
}
###a, b, cの事後分布###
hist(a4[(iter/2):iter])
hist(b4[(iter/2):iter])
hist(c4[(iter/2):iter])
> mean(a4[(iter/2):iter])
[1] 10.07981
> mean(b4[(iter/2):iter])
[1] 1.872144
> mean(c4[(iter/2):iter])
[1] 0.9888237
おそらく、これで問題なくコードできたと思います。皆様、本...
- 繰り返しになりますが,cost_func2のsumが掛かる場所がおか...
- Log(A*B)=Log(A)+Log(B)なので、一緒ではないのですか?sum...
- 上記だと事前密度もデータの数だけ掛けられていることにな...
- ご参照ください.
> sum(dnorm(1:10, 0, 1, log = TRUE)) + dnorm(0, 0, 1, lo...
[1] -203.5273
> sum(log(dnorm(1:10, 0, 1)*dnorm(0, 0, 1)*dnorm(0, 0, 1...
[1] -220.0682
-- [[toto]] &new{2010-07-08 (木) 06:42:56};
- あぁ!sumの場所が後ろまでいってしまっていますね!sum(対...
- 全く別です.メトロポリスは候補発生の仕組みがランダムウ...
- totoさん、ありがとうございました。自分の勉強不足を痛感...
set.seed(1)
iter <- 20000
###真の値###
a <- 10
b <- 2
x <- seq(0.01, 1, length=500)
y <- b*x + rnorm(500, a, 1)
###正規化定数抜きの事後分布の計算###
###マジメにa,b.cの事前分布を設定###
cost_func2 <- function(a3, b3) {
sum(log(dnorm(y, a3 + b3*x, 1))) +
log(dnorm(a3, a-1, 100)) + log(dnorm(b3, b-1, 10...
}
###乱数と初期値の設定###
u <- runif(iter, 0, 1)
a4 <- b4 <- numeric(iter+1)
a4[1] <- b4[1] <-5
lag <- 0.4
###メトロポリス法の実行###
for(i in 1 : iter) {
a4_2 <- a4[i] + runif(1, -lag, lag)
b4_2 <- b4[i] + runif(1, -lag, lag)
###a, bは一斉に値を更新するように変更###
if (u[i] < exp(cost_func2(a3=a4_2, b3=b4_2)-
cost_func2(a3=a4[i], b3=b4[i]))) {
a4[i+1] <- a4_2
b4[i+1] <- b4_2
} else {
a4[i+1] <- a4[i]
b4[i+1] <- b4[i]
}
}
###a, b, cの事後分布###
hist(a4[(iter/2):iter])
hist(b4[(iter/2):iter])
> mean(a4[(iter/2):iter])
[1] 10.08433
> mean(b4[(iter/2):iter])
[1] 1.884697
分散パラメータが私の実力不足で上手くコードに含めることが...
**地理的加重回帰分析のgwrの予測値 [#k2631fd0]
>[[酔鯨]] (2010-07-03 (土) 10:33:29)~
~
spgwrの地理的加重回帰分析のgwrの予測値は、XXX$SDFのテーブ...
//
- prediction 引数の説明は読みました?~
predictions: default FALSE; if TRUE and no fit points gi...
それでは片付かない? -- [[河童の屁は,河童にあらず,屁で...
- 回答ありがとうございます。コロンバス市の犯罪データのCRI...
- 言葉足らずだったので説明を追加します。CRIMEは被説明変数...
- 「コロンバス市の犯罪データのCRIMEに空白の欄を設け計算し...
あなたと一緒に悩んでみようという人にとっては,あなたのや...
こうすればよいんですよという回答を持っている人も,あなた...
- 申し訳ありません。predictionsの意味はわかりませんが上の...
**Rによるアクセスログ解析 [#t7427dba]
>[[tadashi]] (2010-07-02 (金) 15:05:54)~
~
"Rでアクセスログ" と検索してもでてきません。Rでアクセス...
もし、awstats 等でやっているようなことをRで代替している...
//
- 検索語がまずいのね。"R * アクセスログ解析" と,指定して...
- なるほど参考になります。ABC分析もさがしてみます。 -- [[...
**統計解析関数Tipsのrepeated mesure aonovaのコード [#ee4f...
>[[ちゃーぴー]] (2010-07-02 (金) 10:04:01)~
~
RjpWiki内の統計解析Tipsにある反復測定分散分析 (Repeated m...
+ rownames(ttx)[rownames(ttx)=="Residuals"]<-sub...
エラー: "Error: (.*\)"で始まる文字列の中で '\)' は文...
~
//
- どうもすさまじいコピーペーストで,汚い上に余分な部分ば...
エラーメッセージを見れば対処法は分かると思います。
rownames(ttx)[rownames(ttx)=="Residuals"]<-sub("Error: (...
とすればよいのでしょう。 -- [[河童の屁は,河童にあらず,...
- ご教授ありがとうございました.m(_ _)m 投稿方法を再度確...
- おかげさまで,エラーは回避できたのですが,ひとつわから...
- そういうことがあり得るのかどうかは,たぶん数理的に説明...
問題は異なりますが,例えば,同じデータをノンパラメトリッ...
誰かに聞くというのは最も簡単な方法ですけど,自分で正しい...
- ご指摘・ご助言ありがとうございます.Ryan法のP値の調整方...
**Shaffer法の多重比較 [#u3fc5003]
>[[tasosi]] (2010-07-01 (木) 18:43:27)~
~
Shaffer法の多重比較に関するパッケージを探しています.~
色々調べてみたのですが,ANOVA君を活用するという手段はあっ...
多重比較で,paired-t-testのP値を補正するのに用いたいと思...
//
//- 「河童の屁は,所詮屁である。」さん。アドバイスありが...
- なんかね,別のスレッドが紛れ込んじゃって変なので,削除...
- まずは,コメントアウトしてと~
それなりに用意されているパッケージもあるかも知れないけど...
この関数の paired は,対応のあるデータという意味ではなく...
あ,でも,残念。対応のある場合の Sheffe には対応してない...
- SheffeではなくShaffer法なのですが,これは対応ありの場合...
- ああ。Shaffer でしたね。~
> False Discovery Rateという考え方がどこまで受け入れられ...
知らない人が「ば〜〜か」ということでよろしいのではないで...
- ありがとうございます.多重比較は色々な方法があって,諸...
**行列におけるNA値を前後の行の値から補完したい [#h6065635]
>[[R初心者]] (2010-07-01 (木) 14:27:54)~
~
はじめまして。~
ネットワークの研究をしている大学院生です。データのグラフ...
googleとこのwikiでググってみたのですが、分からなかったの...
環境はMacOSX 10.5.8~
Rのバージョンは2.9.0です。~
−−−−−−~
やろうとしていることの概要~
2つのプログラムからの出力をまとめた欠損値を持つCSVを、欠...
補完せずとも、線グラフが切れない手法があればそれでもOKで...
−−−−−−~
ネットワークのスループットとRTTをTcpdumpを解析して出力す...
time, seqnum(シーケンス番号), rtt, throughput
0.0, 3136068389, 0.0469200000006822,
0.0808820000020205, 3136070885, 0.061139999997976...
0.0999999999985448, , , 24960.0~
0.142041999999492, 3136074629, 0.0901450000019395...
0.142041999999492, 3136072133, 0.0699139999996987...
0.19999999999709, , , 37440.0
0.21197000000393, 3136077125, 0.0549669999963953,
0.232200999998895, 3136079621, 0.0598790000003646...
0.266950000004726, 3136084613, 0.0701439999975264...
.....
これをRにCSVとして食わせると、次のようになります。~
time seqnum rtt throughput
1 0.000000 3136068389 0.046920 NA
2 0.080882 3136070885 0.061140 NA
3 0.100000 NA NA 24960
4 0.142042 3136074629 0.090145 NA
5 0.142042 3136072133 0.069914 NA
6 0.200000 NA NA 37440
7 0.211970 3136077125 0.054967 NA
8 0.232201 3136079621 0.059879 NA
このNA値を前後の行の値の中間値となるように補完したいです。~
なにかそのような関数はありますでしょうか。~
補完のやりかたは~
「1,2,NA,4,5」-> [1,2,(2+4)/2=3, 4, 5]~
のようなもので、連続した値が抜けた際は~
「1,2 NA, NA, NA, 6」-> [1,2,3,4,5,6]~
となってもらえるのが理想です。~
~
最初は作ろうかと思ったのですが、既にありそうな気がしたの...
よろしくお願いします。~
−−−−−−~
自己解決しました。
Vectorを補完する関数を書いたので、行列を「列で分解、適用...
complementNaVector <- function(vector) {
posVector <- 1:length(vector)
naPosVector <- posVector[is.na(vector)]
notNaPosVector <- posVector[!is.na(vector)]
for (index in naPosVector) {
lowerVector <- notNaPosVector[notNaPosVector < index]
greaterVector <- notNaPosVector[notNaPosVector > index]
if(length(lowerVector) != 0 && length(greaterVector) !=...
low <- lowerVector[length(lowerVector)]
high <- greaterVector[1]
distance <- vector[high] - vector[low]
stepl2h <- high - low
stepl2i <- index - low
vector[index] <- vector[low] + (distance * stepl2i / s...
} else {
vector[index] <- NA
}
}
return(vector)
}
行列の補完
complementNaMat <- function(matrix) {
iterator <- 2:ncol(matrix)
mat <- complementNaVector(matrix[, 1])
for(index in iterator){
vector <- complementNaVector(matrix[, index])
mat <- cbind(mat, vector)
}
return(mat)
}
## 以下でよさそう
complementNaMat <- function(matrix) {
for (index in 1:ncol(matrix)) {
matrix[, index] <- complementNaVector(matrix[, index])
}
return(matrix)
}
//
- approx というのが stats にある。 -- [[河童の屁は,所詮...
- 4番目と5番目の time の値が同じなのでこれをちょっとずら...
prox 関数の違いは以下の図のようになる。(あなたの関数と同...
d$time[5] <- d$time[5]+0.000001
plot(d$time, d$rtt)
lines(d$time, d$rtt, type="l")
points(d$time, complementNA(d$rtt), col=2) # あなたの関...
lines(d$time, complementNA(d$rtt), col=2, lty=3)
points(d$time, approx(d$time, d$rtt, xout=d$time)$y, col...
lines(d$time, approx(d$time, d$rtt, xout=d$time)$y, col=...
&ref(approx.png);
- 「河童の屁は,所詮屁である。」さん。アドバイスありがと...
**データの重なり [#ued9015f]
>[[森の熊五郎]] (2010-06-27 (日) 01:02:10)~
~
コールセンタに日々大勢の方から電話がかかってきます。1日...
C201004,C201005,C201006~
Sato,Sato,Nishihara~
Tanaka,Yamada,Sato~
Yamada,Kojima,Nishijima~
Inoue,Kitano,Inoue~
Sato,Shinagawa,Yokosuka~
Kitamura,Handa,~
Yamamoto,Kitamura,~
Ohta,Handa,~
Inoue,Nishi,~
Kitamura,Yokota,~
Kobayashi,Sato,~
~
csvのファイルに上記のようにデータベースがあります。~
行方向は日にち、列方向はその日に利用されたお客様のお名前...
call=read.csv("call2010.csv",header=TRUE)
call201004=call$C201004
call201004=call201004[!is.na(call201004)]
call201005=call$C201005
call201005=call201005[!is.na(call201005)]
call201006=call$C201006
call201006=call201006[!is.na(call201006)]
length(call201004)
length(unique(call201004))
length(call201005)
length(unique(call201005))
length(call201006)
length(unique(call201006))
Tcall=c(call201004,call201005)
length(Tcall)
length(unique(Tcall))
Tcall=c(Tcall,call201006)
length(Tcall)
length(unique(Tcall))~
というプログラムを作りました。~
�今回は3日分しかないので、簡単なのですが365日...
�文字列のベクトルの結合はc(X,Y)ではうまくいきませ...
�欲を言えばピボットテーブルのように、お客様毎にい...
コールセンタの利用件数は月に何万件もあって膨大なので、exc...
//
- SQL向きですね。 -- &new{2010-06-27 (日) 10:46:01};
- 文字列ベクトルの結合ではなく,データフレームの結合 cbin...
call <- read.csv("call2010.csv",header=TRUE,as.is=TRUE)
x <- colnames(call)
n <- nrow(call)
N <- 3
call.1 <- call.2 <- rep(NA,N*n)
for (i in seq(1,N)) {
SEQ <- seq(1+(i-1)*n, i*n)
call.1[SEQ] <- call[[i]]
call.2[SEQ] <- rep(x[i],n) }
call.3 <- data.frame(call.2, call.1)
unstack(call.3)
[[1]]
[1] "C201006" "C201006" "C201006" "C201006" "C201006" "C...
$Handa
[1] "C201005" "C201005"
$Inoue
[1] "C201004" "C201004" "C201006"
$Kitamura
[1] "C201004" "C201004" "C201005"
$Kitano
[1] "C201005"
$Kobayashi
[1] "C201004"
$Kojima
[1] "C201005"
$Nishi
[1] "C201005"
$Nishihara
[1] "C201006"
$Nishijima
[1] "C201006"
$Ohta
[1] "C201004"
$Sato
[1] "C201004" "C201004" "C201005" "C201005" "C201006"
$Shinagawa
[1] "C201005"
$Tanaka
[1] "C201004"
$Yamada
[1] "C201004" "C201005"
$Yamamoto
[1] "C201004"
$Yokosuka
[1] "C201006"
$Yokota
[1] "C201005"
call.3 # このような一時的データフレームを...
call.2 call.1
1 C201004 Sato
2 C201004 Tanaka
3 C201004 Yamada
4 C201004 Inoue
5 C201004 Sato
6 C201004 Kitamura
7 C201004 Yamamoto
8 C201004 Ohta
9 C201004 Inoue
10 C201004 Kitamura
11 C201004 Kobayashi
12 C201005 Sato
13 C201005 Yamada
14 C201005 Kojima
15 C201005 Kitano
16 C201005 Shinagawa
17 C201005 Handa
18 C201005 Kitamura
19 C201005 Handa
20 C201005 Nishi
21 C201005 Yokota
22 C201005 Sato
23 C201006 Nishihara
24 C201006 Sato
25 C201006 Nishijima
26 C201006 Inoue
27 C201006 Yokosuka
28 C201006
29 C201006
30 C201006
31 C201006
32 C201006
33 C201006
- ご教授ありがとうございます。教えて頂いたプログラムを読...
- help(read.csv)でオンラインマニュアルを調べて見てくださ...
call <- read.csv("call2010.csv",header=TRUE,as.is=TRUE)
x <- colnames(call)
n <- nrow(call)
N <- 3
call.1 <- call.2 <- NULL
for (i in seq(1,N)) {
SEQ <- (call[[i]] != "") # 空文字列でないか...
call.1 <- c(call.1, call[[i]][SEQ])
call.2 <- c(call.2, rep(x[i],sum(SEQ)) }
call.3 <- data.frame(call.2, call.1)
unstack(call.3)
$Handa
[1] "C201005" "C201005"
$Inoue
[1] "C201004" "C201004" "C201006"
(以下略)
- まず,データ構造を改める方が良いと思います。日ごとのク...
データの処理はアルゴリズムだけではなく,データ構造も重要...
示されたようなデータ構造だと,年月を経れば巨大なファイル...
問題を整理すると,毎日毎日のクレーマーの電話場号を一つの...
以下に,テストデータの生成を含めて集計例を示しますが,この...
> # テストデータ作成
> # 作成されるデータファイル Jun0601 〜 Jun0610 の実際の...
> set.seed(88541)
> for (i in 1:10) {
+ fn <- sprintf("Jun06%02d", i)
+ n <- sample(100:500, 1)
+ x <- sprintf("%03d-%04d", sample(999, n, replace=TRUE...
+ write(x, fn)
+ }
> # 以上のデータを使って,色々な集計をしてみる(最終的に...
> # 入力制限せず(全部),全部の集計
> x <- NULL
> for (i in 1:10) {
+ fn <- sprintf("Jun06%02d", i)
+ x <- c(x, scan(fn, what=""))
+ }
Read 145 items
Read 109 items
Read 169 items
Read 446 items
Read 412 items
Read 283 items
Read 140 items
Read 140 items
Read 199 items
Read 174 items
> length(x) # 読み込んだ全部のクレーム電話番号の個数
[1] 2217
> table(x) # 集計結果 電話番号のように見えるのは架空のも...
x
001-0617 001-5112 002-3684 003-1068 003-3291 004-9049 00...
1 1 1 1 1 1 ...
中略
996-7889 996-9818 997-0618 997-8295 998-9462 999-0492 99...
1 1 1 1 1 1 ...
999-3655
1
> sum(x=="999-3352") # 999-3352 は 1 件
[1] 1
> sum(x=="123-4567") # 123-4567 は 0 件
[1] 0
> sum(table(x) >= 2) # このデータにおいて,2 件以上のク...
[1] 0
> # などなどなどなどなどなどなどなどなどなどなどなどなど...
> ######################################
> # 任意の入力 Jun0601, Jun0602 のみ
> x <- NULL
> for (i in 1:2) {
+ fn <- sprintf("Jun06%02d", i)
+ x <- c(x, scan(fn, what=""))
+ }
Read 145 items
Read 109 items
> length(x)
[1] 254
> table(x) # 集計結果 電話番号のように見えるのは架空のも...
x
003-1068 006-7349 014-9687 021-9091 023-4157 024-4196 02...
1 1 1 1 1 1 ...
中略
979-1463 979-8195 984-7011 990-2678 992-4048 997-0618
1 1 1 1 1 1
意外と,簡単ではないですか?そのうえなにか必要ですか? --...
- Rでやるならという意味で回答しましたが、やはりこれは第一...
- いろいろ、ご教授頂きありがとうございます。「クレーマー...
- ↑↑同意します。用途にあった言語がある中で敢えてRを駆使し...
- call.3 までもってこれれば reshapeパッケージのcast()でも...
- まあ,はっきり強く「NO」と言われたもんだ。クレーマーと...
- 言葉使いが悪くてすみません。ご指摘の通り、コールセンタ...
**neuralパッケージのインストールについて [#me165c60]
>[[hiro]] (2010-06-24 (木) 02:54:33)~
~
はじめまして、Ubuntu10.04(64bit)にて、R:2.10.1を使って...
現在、豊田秀樹氏の「データマイニング入門」という書籍を読...
~
この書籍の第2章の「鉛筆の数え方」のところで、『neuralライ...
~
この書籍はそもそもOS:windowsXP、R:2.7.0を前提にして書か...
~
あるいは、neuralライブラリはLinuxにも提供されていたが、古...
~
この書籍でRを学びたいので、出来ればneuralライブラリを使い...
//
- すみません、自己解決しました。 -- [[hiro]] &new{2010-06...
- http://cran.stat.nus.edu.sg/src/contrib/Archive/neural/...
- そんな面倒なことをしなくても
sudo R CMD INSTALL neural_1.4.tar.gz
でOK -- &new{2010-06-24 (木) 11:51:00};
- Ver.2.12.2ですがどうしてもインストール出来ません。詳し...
**R + VIM (Windows) [#le9c6f7f]
>[[尼河童]] (2010-06-23 (水) 00:12:42)~
~
みなさまこんにちは。~
ウィンドウズマシーンで R 2.10.1 を使っています。はい、バ...
~
エディタは昔から vim を使っているのですが、簡単に R コー...
~
素敵な方法をご存知の方はご教授ください。~
//
**png出力の背景透過について [#s483bc8c]
>[[としろう]] (2010-06-20 (日) 07:21:25)~
~
plot関数などで作成した図を、png形式で出力する際に、枠やプ...
例えば下のプログラムでは、背景が透かしたままで出力されて...
使用環境はwindows,R-2.11.1です。
plot(1:20)
pp<-recordPlot()
png("test.png",bg="white")
replayPlot(pp)
dev.off()
//
- recordPlot したものが透過なのだから,replayPlot したも...
png("test.png",bg="white")
plot(1:20)
dev.off()
でできるのは,ちゃんとバックグラウンドが white です。 -- ...
- ご返答ありがとうございます。教えていただいた方法で、背...
画面に出力を表示させた後にrecordPlot(),replayPlot()を使う...
**Rで(ハフマン)符号の複合化 [#ca9124d4]
>[[R初心者]] (2010-06-19 (土) 21:29:59)~
~
各アルファベットが0/1のコードに(ハフマン)符号化されてい...
~
|文字|符号|
|A|01|
|B|111|
|C|110|
|D|101|
|E|001|
|F|000|
|G|1001|
|H|10001|
|I|10000|
~
上記の表でデータを複合化すると「0,1,1,0,0,0,1,1,1,0,0,1,1...
~
さて,データを複合化するための方法の1つが,符号を2分木化...
#ref(Q&A (初級者コース)/12/tree.gif, center)
しかし,Rではポインタがなさそうなので,仕方なく以下のよう...
データをx,上記のリスト(符号,文字)をy,zに格納するプロ...
> x <- c(0,1,1,0,0,0,1,1,1,0,0,1,1,0,0,1, # データ
+ 1,0,0,0,0,1,1,0,1,1,1,1,0,0,0,1) # 結果:AH...
> y <- c("01","111","110","101","001",
+ "000","1001","10001","10000") # ハフマン...
> z <- c("A","B","C","D","E","F","G","H","I") # 対応する...
次に,データを1文字ずつ読み込み,リストyの要素のいずれに...
> result <- c() # 複合結果
> tmp <- "" # バッファ
> for (i in 1:length(x)) {
+ tmp <- paste(tmp, x[i], sep="") # データから1文字...
+ j <- 1 # 複合化:yのどの...
+ for (j in 1:length(y)) { #
+ if (y[j] == tmp) { # yのj番目の値に該...
+ result <- c(result, z[j]) # zに複合化した結...
+ tmp <- "" # バッファを初期化
+ break # 繰り返し文から抜...
+ }
+ }
+ }
> result
[1] "A" "H" "C" "A" "G" "I" "C" "B" "H"
(1) 上記のプログラムでは,文字の種類が増えてくると計算速...
(2) Rで,C言語のポインタのようなことは出来るのでしょうか.~
ご教示戴けますと幸いです.
//
**grep("c",list(c("","")) の値が 1 になる問題 [#b897f8cd]
>[[松田紀之]] (2010-06-18 (金) 10:04:51)~
~
Mac OS-X (10.5.8)でR2.11.1で文字列処理を試みているうちに...
(1) patternの文字が"c"以外のアルファベットなら正常に動く.~
(2) 参照されるlistの内容が c("") と単一の場合も正常に動く...
(3) listではなく,grep("c",c("","")) なら正常に動く.~
プログラム全体の都合上,list() を対象にしています.何故こ...
//
- ?grep内のx, testを読んでみてください. grep では文字列ベ...
- 既出:このページの一番下の記事を読んでみてください。原...
- 早速お答え頂き有り難うございました. grep(pattern, x,…)...
**batch処理でfile名を自動的に生成し、saveしたい [#kc2610db]
>[[nakamura]] (2010-06-17 (木) 19:18:15)~
~
//初めて質問させていただく初心者です。
単純な例として装置からの多数のdataをreadで取り込んで、XDR...
file.name <- c("map_1.csv", "map_2.csv") # ファイル名の...
par(ask=T)
for (i in 1:2) {
fn <- file.name[i] # ファイル名
dt <- read.csv(fn , header=T, na.strings="NA")
# plot(dt, main=fn) # main タイトル付きの描画
write.table(summary(dt), "fn_sum.txt", quote=F)
save(dt, file="file.name[i].dat")
}
//
- write.table で "map_i_sum.txt", save で,"map_i.dat" ...
for の制御変数 i を使って,fn <- paste("map_", i, ".csv",...
- ご回答ありがとうございます。うまくゆきました。追加で伺...
- ?assign -- &new{2010-06-18 (金) 18:38:20};
- 最初にも書いていたのだけど,「[[行列にfor文中の変数を含...
でも,本当にそんなことが必要になることは滅多にないと思う...
- ありがとうございます。調べ方が不十分で、お手数をおかけ...
**「0,1」のビットファイルを読み込む方法 [#n2cd5497]
>[[R初心者]] (2010-06-17 (木) 12:01:56)~
~
「0100101000010101・・・」のように延々と続くファイルがあ...
> ff <- tempfile()
> cat(file=ff,"01000101000100100101\n")
> read.fwf(ff, widths=rep(1,20))
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V...
0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 ...
(1) ファイルを読み込む際文字数(ビット数)が分からなけれ...
(2) 上記では関数read.fwf()で無理やり読み込んでいますが,...
どうかよろしくお願いいたします.~
//
- readBin を調べるとよいのではないかな。readBin(ff, size=...
- 早速ご指導いただきましてありがとうございます.以下のよ...
> ff <- tempfile()
> cat(file=ff, "01000101000100100101\n")
> read.fwf(ff, widths=rep(1,20))
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16...
1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0...
> file.info(ff) # ファイル...
...
C:\\DOCUME~1\\x\\LOCALS~1\\Temp\\RtmpcQhzyb\\file767d7a5...
...
C:\\DOCUME~1\\x\\LOCALS~1\\Temp\\RtmpcQhzyb\\file767d7a5...
...........................................................
> file.info(ff)[1] # ファイル...
...
C:\\DOCUME~1\\x\\LOCALS~1\\Temp\\RtmpcQhzyb\\file767d7a5...
>
> size <- as.integer(file.info(ff)[1]-2) # 改行文字...
> read.fwf(ff, widths=rep(1,size)) # 読み込み
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16...
1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0...
> readBin(ff, size=1, what="int", n=size) # 整数値 ...
[1] 48 49 48 48 48 49 48 49 48 48 48 49 48 48 49 48 48 ...
> readBin(ff, size=1, what="raw", n=size) # raw(16進)...
[1] 30 31 30 30 30 31 30 31 30 30 30 31 30 30 31 30 30 ...
> readBin(ff, size=1, what="int", n=size)-48 # 整数値 ...
[1] 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 1
お忙しいところ本当にありがとうございました.-- [[R初心者]...
**単語間の距離を求めデンドログラムの構築まで [#k501932a]
>[[AKB]] (2010-06-15 (火) 23:49:30)~
~
基データ(csv)としてテキスト(301)×単語(1134)のマトリクスが...
data <-read.csv("C:/RTest/Real Game.csv", header=T, row....
data # 表示
old.op <- options(max.print=999999)
myCosine <- function(x) {
ret <- matrix(0, ncol=ncol(x), nrow=ncol(x))
for(i in 1:ncol(x)) {
for(j in 1:ncol(x)) {
ret[i, j] <- (x[,i] %*% x[,j]) / (sqrt(sum(x[,i]^2...
}
}
ret
}
myCosine(data)
plot(hclust(as.dist(data)))
です.基のデータから単語間の距離に基づいたデンドログラム...
//
- 何のために myCosine を定義したんですか?~
myCosine(data) をやっても,その結果を使ってないじゃないで...
plot(hclust(as.dist(myCosine(data)))) なんじゃないですか?~
「[[デンドログラム、またヒートマップのデンドログラムの高...
投稿法も再度チェックしてください(記事にプログラムを含め...
**データフレームの取り出し [#w831996e]
>[[akira]] (2010-06-12 (土) 22:53:35)~
~
以下のデータフレームがあったとして
a b c d e f g
1 q p q 4 6 7 6
2 q p p 5 4 5 4
3 p p p 5 4 5 7
4 q q q 3 5 4 6
a~cそれぞれの値がpに該当する行を取り出す方法を考えていた...
[a]
d e f g
3 5 4 5 7
[b]
d e f g
1 4 6 7 6
2 5 4 5 4
3 5 4 5 7
[c]
d e f g
2 5 4 5 4
3 5 4 5 7
どなたかお分かりの方、丸投げで申し訳ありませんがご教示頂...
//
- 誰でも分かると思うが,答えてやろうと思う人は少ないのか...
> subset(x, x[1]=="p")[4:7]
d e f g
3 5 4 5 7
> subset(x, x[2]=="p")[4:7]
d e f g
1 4 6 7 6
2 5 4 5 4
3 5 4 5 7
> subset(x, x[3]=="p")[4:7]
d e f g
2 5 4 5 4
3 5 4 5 7
> x[x[1]=="p",][4:7] # これは余りお勧めしない
d e f g
3 5 4 5 7
- 迅速なご回答ありがとうございます。すみません、質問を間...
- てまがかかるなあ。。。lapply(x[1:3], function(y) subset...
- ありがとうございました。lapplyの使い方がいまひとつ理解...
**配列とGIS(緯度経度)情報の重ね合わせ図 [#f3d0f36c]
>[[宗二]] (2010-06-11 (金) 02:01:30)~
~
シェープファイルと2次元配列から作った、図の重ね合わせ方で...
具体的には、日本の海岸線のシェープファイル(ライン)を
plot(シェープファイル, xlim=c(西経度, 東経度), ylim=c(南...
というようにプロットした後、2 次元配列として用意した日本...
配列をプロットするときの軸の範囲が、配列の要素番号と対応...
image(配列, xlim=c(西経度, 東経度), ylim=c(南緯度, 北緯...
のようにすると、範囲が大きくずれて何も表示されなくなって...
なにか良い解決方法ありましたらお願いします。~
//
- シェープファイルの読み込みはどのライブラリのどのコマン...
- ご返答ありがとうございます。シェープファイルの読み込み...
- 「あなたの試みたことを回答者が再現できるような、データ...
- 分かりにくい質問で申し訳ないです。~
当方のR環境はver2.10.0で、Tinn-R1.19.4.7で編集したものをR...
シェープファイルは国土交通省のホームページで公開されてい...
http://nlftp.mlit.go.jp/ksj/jpgis/datalist/KsjTmplt-C23.h...
のxmlファイルを、ArcGISでまとめてcoastline.shpというファ...
その上で以下のようなプログラムを試しています。 -- [[宗二]...
temp0 <- file("...気温のバイナリデータ...", "rb")
width <- 501 ### 気温データの水平格子数
height <- 501 ### 気温データの鉛直格子数
temp <- readBin(temp0,integer(), n=width*height, size=2)
close(temp0)
temp = temp/10.0 ### データ-->気温への変換式です。
temp_arr <- matrix(temp,width,height)
temp_arr = t(apply(temp_arr,1,rev)) ### 地図投影のため...
image(temp_arr,col=rainbow(300),xlim=c(137,142),ylim=c(3...
### 経度137E-142E, 緯度36N-41N, 温度の範囲5-30℃ で指定し...
### このままだと図の枠中が白紙のままです。
### 501*501の配列を、0.01度格子で上記の緯度経度に対応さ...
map <- readShapeLines("coastline.shp")
plot(map,xlim=c(137,142),ylim=c(36,41))
### 海岸線のシェープファイルの読み込みとプロット
### こちらは図の枠内にちゃんと海岸線がプロットされます。
- tempにxy座標が入っていないのでそれでは重なりません。ヒ...
a <- list(x=seq(137,142,1),y=seq(36,41,1),z=1:6%o%1:6)
image(a)
&ref(st20100614-2.png,center);~
~
この図の描画に続いて
map <- readShapeLines("coastline.shp")
plot(map,xlim=c(137,142),ylim=c(36,41),add=TRUE)
とすれば、重なっていることがわかるはず。coastline.shpがな...
- 的確なご指摘ありがとうございました。思いどおりの図が描...
リスト化して配列にxy座標の情報を付加するんですね。勉強に...
**プログラムの中断・再開 [#yd40b668]
>[[shannon]] (2010-06-11 (金) 00:54:55)~
~
プログラム実行を途中で中断・再開させる関数、あるいはコマ...
WindowsのTinn-R(ver:1.19.4.7)から、ショートカットキーでR...
手動で範囲指定してコンソールに送る、以外でいい方法はない...
//
- 簡単そうな質問なのに回答がないのは,質問があいまいなの...
「変数の値を確認」というのは,いつも決まった変数の値を確...
> for (i in 1:10) {
+ print(paste("i =", i))
+ j <- readLines(con=stdin(), n=1)
+ if (j == "stop") break # 早めに実行中断したいならこの...
+ }
[1] "i = 1"
# リターンキーだけ押した
[1] "i = 2"
ok
[1] "i = 3"
0
[1] "i = 4"
stop # "stop" を入力すると終了
それとも場合に応じていろいろな変数をチェックすることもあ...
- ご返答ありがとうございます。
browser()やstopifnot()など他のデバッグ用関数も試してみま...
思い違いでしたら申し訳ないのですが、確かに関数の命令文の...
例えば以下のように、プログラム中で変数の定義をやり直す場...
1: a <- 1
2: b <- 2
3: #ここで実行を中止したい
4: a <- 10
5: b <- 20
示していただいた例文を使って、
1: a <- 1
2: b <- 2
3:
4: for (i in 1:2) {
5: print(paste("i=", i))
6: j <- readLines(con=stdin(), n=1)
7: if (j =="stop") break
8: }
9:
10: a <- 10
11: b <- 20
のようにして実行すると、10行目のa<-10という命令がreadLine...
10行目以降の命令を渡す前に、9行目までで実行を中断したいの...
- > 確かに関数の命令文の中で使うと効果があるんですが、関...
そのような場合には,全体を { } でくくってやればよいのです...
{ # これと
a <- 1
b <- 2
cat("Hit any key!\n")
if (readLines(con=stdin(), n=1) == "stop") stop("中止し...
a <- 10
b <- 20
} # これ
こんなところでいかが? -- [[河童の屁は,河童にあらず,屁...
- 再度のご返答ありがとうございました。教えていただいたや...
専用の関数がなくとも工夫しだいでなんとかなるんですね。 --...
**Rによる日別の時系列分析に関する文献を探しています。 [#u...
>[[T]] (2010-06-10 (木) 16:22:17)~
~
//ここに書き込めばいいかわからなかったのですが、ここに書...
只今卒論のテーマとしてある飲食店の一店舗の様々な日別デー...
ご存じの方がいらっしゃれば教えていただけると幸いです。~
//
**2次元配列の回転 [#j69b3d6b]
>[[do-san]] (2010-06-10 (木) 01:08:00)~
~
2次元のバイナリ(もしくは文字列)配列を、90度、もしくは18...
//
- 二次元のバイナリ配列というのは,例えば,画像ファイル(j...
文字列配列というのは要素が文字列であるだけで,[[数値行列...
- ありがとうございます。見落としてました。 -- [[do-san]] ...
**filled.contourの 重ね描きについて [#pe30cf3c]
>[[vp]] (2010-06-06 (日) 21:35:28)~
~
宜しくお願いします。~
以下のように filled.contour で描いた図に abline で x=0.5,...
data(volcano)
filled.contour(volcano, color = terrain.colors, asp = 1)...
par(new = T)
abline(h = 0.5, xlim = c(0, 1), ylim = c(0, 1))
par(new = T)
abline(v = 0.5, xlim = c(0, 1), ylim = c(0, 1))
何かうまい方法は無いでしょうか?~
//
- オンラインヘルプの Note の二段落目を熟読玩味。 -- [[河...
filled.contour(volcano, color = terrain.colors, asp = 1,
plot.axes={axis(1); axis(2); abline(v=0.5...
- ありがとうございます。余白の使い方がよくわかりました。y...
- 最初に書いたものを修正しました。filled.contour を読んで...
現在示しているものが正しい対処法です。私自身も,オンライ...
- おお!filled.contourに専用の引数が用意されていたのです...
- ここで質問すべきでなかったらすみません。私も同じ問題で...
上記を参考にさせていただいたのですが、~
filled.contourの引数plot.axesに、例えば以下のようにplot(s...
data(volcano)
filled.contour(volcano, color = terrain.colors, asp = 1
,plot.axes={axis(1); axis(2);plot(seq(0,1...
下の図のように、左側にあった作図領域が消去されて、~
右のカラーバーに軸を併せてプロットしてしまいます。
#ref(Q&A (初級者コース)/12/miss_filled_contour.jpg,50%...
filled.contourにplotを使って重ね書きする場合は、
また別の方法があるんでしょうか? -- [[ですら]] &new{2010-...
- plot.axes={par(new=T); plot(seq(0,1,by=0.1))} では? --...
- ご回答ありがとうございます。ご指摘いただいたやり方で、p...
#ref(Q&A (初級者コース)/12/miss_filled_contour2.jpg,50...
data(volcano)
filled.contour(volcano, color = terrain.colors,xlim=c(0,...
plot.axes={axis(1); axis(2);par(new=T);
plot(seq(0,1,by=0.1,xlim=c(0,1),ylim=c(0,...
})
xlim,ylimで軸の範囲を設定してもずれは直りませんでした。こ...
- par(new=T)は単に重ね描きするだけですから、plot.axesの中...
data(volcano)
filled.contour(volcano, color = terrain.colors,
plot.axes = {par(new = T, xaxs = "i", yax...
plot(seq(0, 1, by = 0.1), se...
xlab = "", ylab = "")
axis(1); axis(2)})
- ご回答ありがとうございます。parによるグラフィックスパラ...
ご指摘いただいた例を参考にして、目的とする図が描けました...
また、読みにくいプログラムを示してしまい失礼しました。前...
**GLMのfamily指定によるEstimateの正負の逆転について [#fd2...
>[[mm]] (2010-06-06 (日) 01:59:41)~
~
こんにちは。最近RでGLMに取り組み始めました。~
まずは,説明変数が応答変数によって正,負のどちらに影響し...
この応答変数は,連続変数で正の値を取るため,familyをGamma...
するとEstimateの値が,正規分布を仮定した回帰分析と逆の正...
下の例のように,irisのデータで,familyをgaussianとGammaで...
指定するfamilyによって,正負の方向が逆転するということは...
test <- glm(Petal.Length ~ Petal.Width, data=iris) ...
summary(test)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.08356 0.07297 14.85 <2e-16 ***
Petal.Width 2.22994 0.05140 43.39 <2e-16 ***
####################
testG <- glm(Petal.Length ~ Petal.Width, data=iris, fami...
summary(testG)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.532340 0.017386 30.62 <2e-16 ***
Petal.Width -0.172682 0.008915 -19.37 <2e-16 ***
//
- family=Gamma の場合,link のデフォルトは inverse ですよ...
- 早速ありがとうございました。返信が遅くなり申し訳ありま...
- 続きです。Gammaしてみました。(link=inverse)Gmma分布につ...
- 上記入力ミスがありました(link=inverse)としてみたら出...
**Bland Altman plotについて [#q2ce7e5a]
>[[sakura]] (2010-06-05 (土) 13:13:57)~
~
最近、調べ物をしていたら、Bland Altman plot のことが目に...
//
- 調べるついでに,google 検索すればよかったですね。~
ResearchMethods パッケージに入っているようです。 -- [[河...
BlandAltman {ResearchMethods} R Documentation
BlandAltman Plot
Description
Using a graphical user interface (GUI) this function per...
plot, and allows for manipulation of the variables withi...
Usage
BlandAltman(x, y, gui=TRUE, bandsOn=FALSE, biasOn=FALSE,...
smooth=FALSE, sig=2)
- 早速のリサーチありがとうございます。 -- [[sakura]] &new...
- > 早速のリサーチありがとうございます~
そんなに,まともに受け取られると,ずっこけるなあ。 -- [[...
- Altman Plot についての邦文解説の詳しいのを見つけられま...
- あなたが見つけた,一番詳しい解説はどこにあった,どのよ...
それを聞いておかないと,答えらんねえ。「そんなんじゃだめ...
- 因みにグーグルすると、以下のような情報に行き当たるので...
2法を繰返しデータの差分として、応用出来そうに思ったりして...
VBA for Excel97による統計ソフト http://www.kms.ac.jp/~cl...
3. 系統誤差の有無・種類の確認 http://shimoi.iuhw.ac.jp/r...
次に, この研究デザインによる結果としての測定値に, 系統誤...
Bland-Altman分析とは, 2つの測定値の差(difference, a-b, ...
つまり、次の座標で示される点AをプロットするとBland-Altman...
Bland-Altman分析を用いた継ぎ足歩行テストの検者内・検者間...
- 英語が苦手なもので、重い腰が上がらずにいるのです。 -- [...
- 英文を探してみると、以下の通り、~
British Journal of Anaesthesia 2007 99(3):309-311; doi:10...
I. Using the Bland–Altman method to measure agreeme...
この論文のレファレンスでAltmanの論文~
7 Bland JM, Altman DG. Statistical methods for assessing ...
8 Bland JM, Altman DG. Comparing methods of measurement: ...
9 Bland JM, Altman DG. Measuring agreement in method comp...
- もしや、と思い、PubMedで「altman plot」で検索すると、46...
- Blandのスペルを間違ってBrandとなっていますが,http://ph...
- ありがとうございます。早速拝見させていただきました。新...
- MethCompの最新バージョンはBendix Carstensenのサイトで辿...
**while のエラー [#x8659b2f]
>[[while]] (2010-06-03 (木) 03:44:10)~
~
while を使用し、行列 kara 内に while 内処理を length(mg) ...
(df kara 内の candy, drop という変数(行名)それぞれに対応...
エラーは以下のように出ます。
以下にエラー kara[, i] <- g :
置き換えるべき項目数が,置き換える数の倍数ではありませ...
//初心者の質問で申し訳ありませんが、ご教授願います。~
mg <- c("candy","drop") # データフレーム ame の中の coln...
kara <-matrix(, length(mg))
i <- 0
while(i <- i+1 <= length(mg)) {
g <- colMeans(subset(ame, ame[i] == "eat", select = ...
kara[,i] <- g
}
//
- 直しようがないプログラムですね。mg <- c("candy", "drop"...
もっと R らしい,簡明直截なプログラムを考えるとよいでしょ...
- そうですね。せめて、ame の中身をつけていただければ、妄...
- 説明不足で申し訳ありません。ameの中には数値データ(1~140...
- 言葉だけでは曖昧なので,小さなデータを示せばすぐにわか...
以下のようなデータフレームでしょうかね。
> set.seed(123)
> ame <- data.frame(name=sample(c("candy", "drop", "cara...
+ x1=sample(140, 15, replace=TRUE),
+ x2=sample(140, 15, replace=TRUE),
+ x3=sample(140, 15, replace=TRUE))
> ame
name x1 x2 x3
1 candy 126 135 20
2 caramel 35 127 33
3 drop 6 97 66
4 caramel 46 112 38
5 caramel 134 4 121
6 candy 125 67 7
7 drop 97 107 62
8 caramel 90 31 112
9 drop 140 45 18
10 drop 92 33 79
11 caramel 100 20 29
12 drop 77 59 18
13 caramel 84 58 106
14 drop 41 52 126
15 candy 21 22 53
求めるものも,一行でできますよ。
> sapply(split(ame, ame[,1]), function(d) colMeans(d[2:4...
candy caramel drop
x1 90.66667 81.50000 75.5
x2 74.66667 58.66667 65.5
x3 26.66667 73.16667 61.5
これでよい?必要に応じ,結果を転置。 -- [[河童の屁は,河...
- 目的次第ですが,ライブラリの有効利用を考えると。library...
- ライブラリの関数を持ち出すのは反則行為だなあ(^_^;)~
aggregate(ame[2:4], ame[1], mean) というのが,一番簡単か...
> aggregate(ame[2:4], ame[1], mean)
name x1 x2 x3
1 candy 90.66667 74.66667 26.66667
2 caramel 81.50000 58.66667 73.16667
3 drop 75.50000 65.50000 61.50000
- ありがとうございます。cady,drop,calamelの変数以外にも10...
- 工夫次第ですよ。 -- [[河童の屁は,河童にあらず,屁であ...
> ame2 <- ame[ ame[,1] %in% c("caramel", "drop"),]
> aggregate(ame2[2:4], ame2[1], mean)
name x1 x2 x3
1 caramel 81.5 58.66667 73.16667
2 drop 75.5 65.50000 61.50000
**Kaplan-Meier 曲線が 1 本だけ [#ncf3a5cd]
>[[?アロバ]] (2010-06-02 (水) 19:29:27)~
~
たびたび皆様にご指導いただきたく、よろしくお願いします。
source("http://aoki2.si.gunma-u.ac.jp/R/src/km_surv.R", ...
# 1 は A 群,2 は B 群を表す
group <- c(1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,1,1,1,1,1,
1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,1,2,2,1,2)
# 1 は死亡,2 は 生存(打ち切り)を表す
event <- c(1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,
1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0)
# 生存期間
time <- c(2,84,318,198,198,197,192,306,96,90,88,66,48,264,
24,5,243,216,42,5,20,0,12,144,48,192,192,228,
176,180,84,84,123,117,115,267,98,96,86,63,44,41,
33,20,18,252)
a.group <- group == 1
km.surv(time[a.group], event[a.group])
library(survival) # survival ライブラリーを使う
dat <- Surv(time[a.group], event[a.group]) # survfit で...
res <- survfit(dat)
上記にて入力したのですが、Kaplan-Meier 曲線が A 群 1 本だ...
//
- plot(survfit(Surv(time, event)~group), col=1:2) でよい...
survfit.formula のオンラインヘルプを熟読すると,使い方が...
- 出来ました、早速”survfit.formula”を読んでみます。ありが...
**行列にfor文中の変数を含んだ名前をつける [#k18bf6cc]
>[[lo]] (2010-05-31 (月) 00:05:13)~
~
for (i in 1:10){~
の中で~
計算結果を行列に格納する工程を書いた後~
i番目の結果を格納した行列(仮にkekkaという名前とします)に...
hogeとi(1から10までの値をとる)をくっつけた、hogeiという名...
この場合、~
hogei<-kekka~
とやっても、hoge1とならずに、hogeiとなってしまいます。~
paste("hoge",i)<-kekkaとやると、エラーになります。~
このような、ループの回数に応じた連続した名称をつけるには...
//
- eval(parse(text=foo)) を検討しましょう。以下のように類...
[[構文 eval(parse(text=...)) :http://www.okada.jp.org/RWi...
[[複数ファイル作成および展開方法:http://www.okada.jp.org/...
[[for-loopのどこでwarningが出たか知りたい:http://www.okad...
[[作業中のファイルの名前取得:http://www.okada.jp.org/RWik...
[[Rでのファイル操作と繰返し文:http://www.okada.jp.org/RWi...
[[変数名に別の変数の内容を含めたい:http://www.okada.jp.or...
[[関数とlistコマンドに関する質問:http://www.okada.jp.org/...
[[連番の変数の参照:http://www.okada.jp.org/RWiki/?cmd=rea...
[[凡例中に数式と数値変数を繰り返し書きたいのですが:http:/...
[[(81) 文字列を数値ベクトルに変換するいくつかの方法:http:...
[[for文での連続した処理:http://www.okada.jp.org/RWiki/?cm...
[[R の命令を表す文字列の値を計算する :http://www.okada.jp...
[[変数をデータフレーム(又はリスト)に加える:http://www.oka...
[[動的に生成された内容/数式マークアップを持つラベル:http:...
[[7.23 文字列を変数に変換するには?:http://www.okada.jp.or...
[[構文を表す文字列を命令として解釈実行:http://www.okada.j...
- ありがとうございます。無事に変数を含んだ行列を生成でき...
- できた行列をcsvで保存するだけなら、オブジェクトに順番つ...
でいいのでは?ループ外で順番に名前をつけたオブジェクトを...
- ありがとうございます。すべて解決しました。 -- [[lo]] &n...
**val.prob{Design}のexampleコードに関する質問 [#o0231325]
>[[vi]] (2010-05-27 (木) 19:22:41)~
~
質問です。Designパッケージの説明ページ~
http://bm2.genes.nig.ac.jp/RGM2/R_current/library/Design/...
において、Examplesとして、実際に使用するときのコードが載...
この中の、後半部分$Survival analysis examples 中に
# Survival analysis examples
# Generate failure times from an exponential distribution
set.seed(123) # so can reproduce results
n <- 2000
age <- 50 + 12*rnorm(n)
sex <- factor(sample(c('Male','Female'), n, rep=TRUE, pr...
cens <- 15*runif(n)
h <- .02*exp(.04*(age-50)+.8*(sex=='Female'))
t <- -log(runif(n))/h
label(t) <- 'Time to Event'
ev <- ifelse(t <= cens, 1, 0)
t <- pmin(t, cens)
S <- Surv(t, ev)
# First validate true model used to generate data
w <- val.surv(est.surv=exp(-h*t), S=S)
plot(w)
plot(w, group=sex) # stratify by sex
上記のような記載があるのですが、私は、est.survというのが...
w <- val.surv(est.surv=exp(-h*t), S=S)
の部分の、exp(-h*t)は、比例ハザードを用いて、(時間tにおけ...
//
- コメントに有るように、これは比例ハザードモデルではなく...
**デンドログラムの葉の並び替え [#pc366591]
>[[jun]] (2010-05-25 (火) 22:57:47)~
~
クラス "dendrogram" に対するメソッドで葉を並べ替える~
reorder(x, wts, ...)~
というものがありますが、使い方がよくわかりません。~
~
葉をV1、V2、V3、V4・・・・と昇順に並べたいのですが。~
昇順に並べても枝は絶対にクロスしないような距離行列とクラ...
~
wtsとは重みと書いてありましたが何の重みですか?~
よろしくお願いします。~
使用環境はR version 2.10.0 (2009-10-26)でWindowsVistaです...
~
1からV1への距離は存在しないので過度に大きな数として99.00...
クラスタリングを単連結で行うため結果に影響は及ぼさないと...
> r
V1 V2 V3 V4 V5 V6 V7 V...
1 99.000 0.045 99.000 99.000 99.000 99.000 99.000 99.00...
2 0.045 99.000 0.071 99.000 99.000 99.000 99.000 99.00...
3 99.000 0.071 99.000 0.042 99.000 99.000 99.000 99.00...
4 99.000 99.000 0.042 99.000 0.037 99.000 99.000 99.00...
5 99.000 99.000 99.000 0.037 99.000 0.059 99.000 99.00...
6 99.000 99.000 99.000 99.000 0.059 99.000 0.111 99.00...
7 99.000 99.000 99.000 99.000 99.000 0.111 99.000 0.07...
8 99.000 99.000 99.000 99.000 99.000 99.000 0.071 99.00...
9 99.000 99.000 99.000 99.000 99.000 99.000 99.000 0.09...
> plot(hclust(as.dist(r),method="single"))
//
- 本当によく分からない関数ですね。以下のようにすると希望...
par(mfrow=1:2)
hc <- hclust(as.dist(r),method="single")
plot(hc, hang=-1, main="", sub="", xlab="")
hc2 <- reorder(as.dendrogram(hc), c(1,2,3,4,5,13,7,8,20))
plot(hc2)
&ref(reorder.png);
- ありがとうございます。ただ他のデータも同じようにしてい...
- str(hc)で構造がわかるようですね。勉強になりました。 -- ...
**既定値つきの引数 [#a20b900c]
>[[ms]] (2010-05-25 (火) 20:56:33)~
~
//教えて下さい。~
RjpWikiの『Rの関数定義の基本』を参考にさせて頂き、関数定...
x[2]+x[3]=1 としたいのですが、この書き方ではだめなのでし...
~
ご意見頂きたくよろしくお願い致します。~
使用環境は R2.10.1, XPです。
fr <- function(x, y=1) {
LL <- 0
pp <- x[4]*(x[2]*(Data[, 19])^x[1] + x[3]*(Data[, 21])...
dp <- x[4]*(x[2]*(Data[, 20])^x[1] + x[3]*(Data[, 22])...
y <- x[2] + x[3]
Ppp <- exp(pp) / (exp(pp) + exp(dp))
Pdp <- exp(dp) / (exp(pp) + exp(dp))
Ppp <- (Ppp != 0)*Ppp + (Ppp == 0)
Pdp <- (Pdp != 0)*Pdp + (Pdp == 0)
Cpp <- Data[, 4] == 1
Cdp <- Data[, 4] == 0
LL <- sum(Cuchi*log(Puchi) + Csoto*log(Psoto))
return(LL)
}
//
- 何を計算しようとしている関数なのか理解できません。何を...
「x[2]+x[3]=1 としたい」というのも,よくわからない。x の...
ついでながら,引数で渡される y は規定値 1 を持つが,にも...
- 不勉強で申し訳ありません。~
LL <- sum(Cpp*log(Ppp)+Cdp*log(Pdp)) の間違いです。計算し...
- x[2]+x[3]=1 が制約条件なら,x[3] を求めなきゃ良い。計算...
- もし x[1],x[2] 等にさらに正値等の条件が付くなら、[[線形...
- ありがとうございます。コメント頂いたとおり、x[2]x[3]は...
- ありがとうございます。コメント頂いたとおり、x[2]x[3]は...
- constrOptim のソースコードの optim を呼ぶところに hessi...
**lme関数出力のvariance componentの標準誤差 [#kfab989e]
>[[aor]] (2010-05-21 (金) 11:28:09)~
~
いつも勉強させてもらっています。~
nlmeパッケージ、lme関数を使用してマルチレベル分析の勉強を...
この出力のうち、 VarCorr関数を使うと分散が出力できますが...
~
小野寺先生らが訳された「基礎から学ぶマルチレベルモデル」 ...
上記の書やインターネットでの検索をすると、「標準誤差はあ...
ですが、その意見はその意見として、勉強のため標準誤差の出...
標準誤差を出力するRの方法、あるいは計算式などについて記載...
どうぞよろしくお願いします。~
環境はR2.11.0, Windows Vistaです。
# サンプル (lmeのヘルプから)
library(nlme)
fm2 <- lme(distance ~ age + Sex, data = Orthodont, rando...
summary(fm2)
VarCorr(fm2)
intervals(fm2)
//
**行列の要素の比較について [#r00a6520]
>[[yosshiii]] (2010-05-20 (木) 16:28:42)~
~
連続で質問です。質問ばかりですみません。~
行列で
01.txt 02.txt 03.txt
A 10 3 7
B 1 0 0
C 10 3 7
の行列があり、”A”という単語がテキスト01に10回, テキスト02...
そこで「A」と「C」の各テキスト毎の出現回数が等しいとき, ...
//
- データ及びプログラムの仕様がはっきりしないのですけど,...
「効率的なやり方が浮かばない」だけで,非効率かも知れない...
以下のようなプログラム(テストデータ生成を含む)はいかが?
#-----------テストデータ作製開始
set.seed(12347)
a <- data.frame(matrix(sample(3, 30, replace=TRUE), 10))
colnames(a) <- sprintf("%02d.txt", 1:3)
rownames(a) <- LETTERS[1:10]
a
#-----------テストデータ作製完了
# 同一行の抽出
dup <- rownames(a[duplicated(a),])
for (i in dup) {
rows <- logical(nrow(a))
for (j in 1:nrow(a)) {
rows[j] = all(a[j,] == a[i,])
}
if (sum(!is.na(rows))) {
cat("-------------\n")
print(a[rows,])
a <- a[!rows,,drop=FALSE]
if (nrow(a) < 2) break
}
}
作られるデータフレーム a は以下の通り
01.txt 02.txt 03.txt
A 3 2 3
B 2 1 1
C 3 2 1
D 3 1 1
E 1 1 1
F 3 1 1
G 1 1 1
H 3 2 1
I 2 1 1
J 1 1 1
実行結果は以下の通り
-------------
01.txt 02.txt 03.txt
D 3 1 1
F 3 1 1
-------------
01.txt 02.txt 03.txt
E 1 1 1
G 1 1 1
J 1 1 1
-------------
01.txt 02.txt 03.txt
C 3 2 1
H 3 2 1
-------------
01.txt 02.txt 03.txt
B 2 1 1
I 2 1 1
同一行の抽出部分を以下のようにすれば,
# 同一行の抽出
a <- a[order(a[,1], a[,2], a[,3]),] # ここは,列数分書い...
n <- nrow(a)
dup <- logical(n)
dup[1] = all(a[1,] == a[2,])
dup[n] = all(a[n,] == a[n-1,])
for (i in 2:(n-1)) {
dup[i] = all(a[i,] == a[i-1,]) || all(a[i,] == a[i+1,])
}
a[dup,]
以下のような結果になります。同じ内容を持つ行がまとめられ...
01.txt 02.txt 03.txt
E 1 1 1
G 1 1 1
J 1 1 1
B 2 1 1
I 2 1 1
D 3 1 1
F 3 1 1
C 3 2 1
H 3 2 1
- •おぉ!!テストデータの作り方まで親切に教えて下さ...
**データフレームの作成 [#b408c3ac]
>[[yosshiii]] (2010-05-19 (水) 12:44:00)~
~
//質問です。
フォルダ内全てのテキストファイルからテキストファイル毎に...
フォルダ「test」に01.txt, 02.txt, 03.txtのテキストファイ...
01.txt 02.txt 03.txt
アリ 1 1 1
スズメ 1 0 0
リス 0 1 0
ハチ 0 0 1
のようにしたいと思っています。~
そして今現在「count」というリストにcount[[1]]=(1 1 0 0), ...
//
- > リストにcount1?=(1 1 0 0), count2?=(1 0 1 0), count3...
付け加えろといわれても,その部分がどのようにできあがって...
l <- list.files(pattern="*.R") # R プログラムを対象に
n <- length(l) # 対象ファイルの個数
res <- matrix(0, 4, n) # 行列にしておく。行数(例では4)...
colnames(res) <- l # 列名をファイル名に
for (i in 1:n) { # 各対象ファイルを処理
x <- readLines(l[i]) # 読み取って
a <- c(any(grepl("function", x)), # キーワードがあれば ...
any(grepl("plot", x)), # 最終的には 1/0 になる
any(grepl("sqrt", x)),
any(grepl("print", x)))
res[, i] <- a # i 番目のファイルの結果は i 列へ
}
(res <- data.frame(res)) # データフレームに変換
こんな風にもできるということで。 -- [[河童の屁は,河童に...
- ホンマに助かりました!!!!^^ -- [[yosshiiii]] &new{...
**ループを用いたPSファイルの自動生成 [#k09d9725]
>[[だいもん]] (2010-05-19 (水) 12:05:32)~
~
以下のコマンドをループでまわすことで、ポストスクリプトフ...
postscript(sheet, horizontal = FALSE, paper = "special",...
levelplot(dd[, 4] ~ dd[,1]*dd[,2], , color=TRUE)
dev.off()
まずこのコマンドをループを遣わずに実行すると、X11()デバイ...
~
さらにループで複数回まわすと、全てのPSファイルが白紙(フ...
~
当方の環境はWindows XPで、R2.11.0を利用しています。お知恵...
//
- ループの中だけ見ても分からないのですが、Xが立ち上がると...
- latticeは癖があるので, 例えば postscriptの代わりに, tre...
library(lattice)
ps.options(onefile=F, paper = "special", height = 4, wid...
trellis.device(postscript, color=T, file="hoge.eps")
mm <- matrix(rnorm(8^2), 8, 8)
levelplot(mm)
dev.off()
なんかかなぁ.
- latticeを入れてみました。確かに、動作が変ですね。私の環...
- 白紙になるのはループ内では, plot(levelplot(mm))とかみた...
- 例えば,levelplot のオンラインヘルプの Values の項に,...
The update method can be used to update components of the...
**ラベルに文字列+式 [#t50ea874]
>[[N/A]] (2010-05-19 (水) 12:02:00)~
~
ラベルで~
coefficient β[i]~
としたい場合どのようにすればよいでしょうか?
ylab="Regression function expression(beta)[i]"
ylab=parse( "Regression function",expression(beta),"[i]" )
でもできなくて案がつきました・・・~
お手数をおかけしますがよろしくお願いします。~
//
- plot(1, ylab=expression(paste(coefficient, " ", beta, g...
- demo(plotmath)でお勉強を -- &new{2010-05-19 (水) 12:44...
- 解答ありがとうございます! -- [[N/A]] &new{2010-05-19 (...
- 良い勉強材料ありがとうございます!Rの作図に詳しくなりた...
**R version 2.11.0のsummary.survfit関数 [#m941bc5b]
>[[nene]] (2010-05-17 (月) 16:54:23)~
~
//質問です。
Design, Hmisc, survival,cmprskの各パッケージを読み込んだ...
//
- 「とあるコード」なんて,もったいぶらないで,そのコード...
一般的には,summary(survfit の返すオブジェクト)のように使...
- お返事頂ける環境にないのかもしれませんが,元のコード(...
**クォート内の文字列処理 [#df79d07d]
>[[BURBUR]] (2010-05-15 (土) 11:55:27)~
~
//初歩的な質問ですが失礼します。~
フォルダ内のファイルを検索したい関数を実装したいのですが~
> test3 <- function(x) {
file<-list.files(path="./x")
return(file)
}
> test3(フォルダ名)
と実行するとpath名をクオートのでくくっているため
list.files: './x' は読めないディレクトリです
というエラーメッセージが出ます。~
これを防ぐ方法を教えて下さい。~
//
- なぜ,path に与えるときに "./x" としないといけないと思...
> test3 <- function(x) {
+ file <- list.files(x)
+ return(file)
+ }
> test3("foo")
[1] "bar" "bar2" "bar3" ...
とすればよいでしょう。test3 に与えるパスの指定方法はご存...
**ディレクトリ内のファイル処理 [#o453b972]
>[[ヨッシ]] (2010-05-14 (金) 16:17:19)~
~
//素人の質問で申し訳ないのですが教えてください~
perlではディレクトリ内のファイルを取得する場合~
opendir my $dir, "ディレクトリのパス" or die "$!";~
while(my $name = readdir $dir){
if($name =~ /.*\.sgml/){ #ディレクトリ内のファイル...
open F1, "ディレクトリのパス/$name" or die "$!";
my @lines = <F1>;
}
}
}
}
closedir $dir;
//
- 本当にごめんなさい。またまた全部書く前に投稿してしまい...
- ?dir -- &new{2010-05-14 (金) 17:09:06};
- setwd("ディテクトリのパス"); list.files()では如何? -- ...
- 助かりました^^ 貴重な意見ありがとうございます^^ --...
**2つの箱ひげ図を1つのグラフに [#b9a10014]
>[[アロバ]] (2010-05-12 (水) 09:45:56)~
~
//素人の質問で大変恐縮です。
par(mfrow=c(1,2))
x<-c(1.12,0,6.82,23.9,17.66,2.67,6.09,0.13,5,0.36,2.07,3...
107.91,80.05,0,21.66,45.33,0,57.51,103.7,40.62,110....
boxplot(x, names=c("x")) #箱ひげ図
y<-c(0,1.74,5.36,0,1.12,7.7,0.85,26.52,4.52,0.33,42.44,3...
boxplot(y, names=c("y")) #箱ひげ図
par(mfrow=c(1,1))
2種類のデータxとyを上記で入力したところ、1つのファイル...
質問1;この2つのグラフを共通の縦軸のグラフにするにはど...
質問2;それぞれのグラフの下に"x"、"y"と名前を入れる事は...
~
ご多忙のところ大変恐縮です、よろしくお願いします。~
使用環境は下記です。
R version 2.11.0 (2010-04-22)
i386-apple-darwin9.8.0
locale:
[1] ja_JP.UTF-8/ja_JP.UTF-8/C/C/ja_JP.UTF-8/ja_JP.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets me...
//
- mfrowを変えずに
boxplot(list(x=x, y=y))
ということで良いのでしょうか? -- &new{2010-05-12 (水) 1...
- うひょ!、出来ました。ほんとにありがとうございました。 ...
**Kaplan meier 生存曲線から任意の時間における生存率 [#uc...
>[[jb3]] (2010-05-11 (火) 21:58:13)~
~
2つ質問があります。~
datatableに
time event group
55 0 1
23 1 1
61 1 1
12 1 1
90 0 1
以下同様に200行の生存時間timeと、イベントeventに関するデ...
これを、読み込んで、<- datasetとして、Rの解説の本に書かれ...
> fitteddata <- Surv(dataset$time, dataset$event)
> sf <- survfit(fitteddata~group, data = dataset)
> plot(sf)
と実行すると、kaplan meier 生存曲線を描くことはできたので...
質問1~
もともと1グループしかないので、群分けはいらないと思い、上...
Survfit requires a formula or a coxph fit as the first a...
というエラーが出ます。単一群の生存曲線を描くのに、~group...
質問2~
任意の時間における、kaplan meier法による生存率を計算する...
~
Rを覚えたてで、2冊の解説書をみながら悪戦苦闘しています。~
よろしくお願いします。~
//
- 質問1に対して:いつの頃からか,そのような場合には,survf...
既出でしたね。[[survfitが使えません:http://www.okada.jp.o...
解説書は古い場合もあるので,挙動が違う場合は,最新の R を...
- 質問2に対しては,おそらくそのような関数は用意されていな...
群分けをしない場合は,河童の屁は,河童にあらず,屁である。...
sf <- survfit(fitteddata ~ 1, data = dataset)
とすると,sf$timeが経過期間,sf$survが生存率となります....
s <- stepfun(c(0, sf$time), c(1, 1, sf$surv))
群分けをした場合は,群ごとに経過期間と生存率を切り出して...
- ありがとうございました。質問1,2とも解決しました。ご...
**Rコマンダーでの層別化 [#aae41647]
>[[mtk]] (2010-05-09 (日) 20:52:56)~
~
MS Windows XP sp3上でRcmdrを使っています。~
%%ver.2.8.0では変数をcharacterに変更するだけで層別化の因...
ver.2.11.0でRcmdr 1.5-4を起動したところ,これでは認識され...
~
データ → アクティブデータセット内の変数の管理 → 数値...
~
で指定したところ認識されました。%%これは仕様の変更なのか...
もし%%仕様の変更なのでしたら%%層別化の便利な使い方があれ...
//
- > 層別化の便利な使い方があれば~
というのは,「今まで(R-2.8.0)のようにもっと簡単な指定法...
- そういう意味です。ところで「デーセットの編集」画面で日...
- お騒がせしましたが,上記の情報は誤りで,ver.2.8.0でも数...
**R commderの適合性検定 [#q891be22]
>[[sousou]] (2010-05-07 (金) 15:55:04)~
~
Rcmdrで適合性検定を行いたいですが、どうやってもうまく行か...
操作手順は分かりますが(統計量→要約→頻度分布→カイ2乗適合...
//
- どのようにやってうまくいかなかったのか分かりませんね。...
- 素早く返事いただき、ありがとうございます。おそらくデー...
- 使い方が間違っているのでは?~
あなたのデータでは,
X-squared = 15.8384, df = 1, p-value = 6.899e-05
となるはず。以下の例をご覧じろ。 -- [[河童の屁は,所詮屁で...
&ref(example999.png);
- なるほど、つまり私の例だと、val1のところにAを127回、Bを...
- > val1のところにAを127回、Bを71回を入力すればいいです...
A, B の個数が分かっているときは,そんな面倒なことは誰もし...
- ご親切でありがとうございました -- [[sousou]] &new{2010-...
**シェルスクリプト上でRによる解析 [#p284f9e2]
>[[まさお]] (2010-05-07 (金) 15:51:27)~
~
シェルスクリプト上でRによるさまざまな処理を行うには,どう...
#!/bin/csh~
R ~
でRは起動するんですけれど,そこで止まってしまいます.R内...
//
- シェルスクリプトに書かなくてもよいということならば,以...
やりたいこと(R プログラムを書いておく)
foo [11] > cat script
x <- 0
for (i in 1:5) x <- x+sqrt(i)
print(x)
それを動かす
foo [12] > R --vanilla --silent --fiile=script
> x <- 0
> for (i in 1:5) x <- x+sqrt(i)
> print(x)
[1] 8.382332
出力は,ファイルに出したりする方がよいでしょうけど。
- ヒアドキュメントが書きたいんでしょうかね。
2行目のEOFから最後のEOFの間にRスクリプトを入れます。
#!/bin/bash
R --slave --vanilla << EOF
jpeg("plot.jpg")
plot(sin, xlim=c(0,2*pi))
EOF
詳細は高階さんの『プログラミングR』を買いましょう。 -- &...
- [[Rscript]]を読まれて、さらにgetoptパッケージを導入され...
**linuxでR [#g3cc28f9]
>[[さっこ]] (2010-05-07 (金) 12:07:39)~
~
linux(GNU)にRを無事make installできたのですが(suで,/usr/...
//
- /usr/local/r-2.10.1/R とやって起動するようなら,パスが...
パスを通してもよいし,既にパスの通っているところからシン...
- どうもありがとうございました。 -- [[さっこ]] &new{2010-...
**Rでのファイル操作と繰返し文 [#e4a4cdf9]
>[[きりんさん]] (2010-05-04 (火) 11:17:02)~
Rで統計解析を行い,その結果をそれぞれの物質名ごとのファ...
これにループ処理を用いて,完成させたいのですがdir.create(...
他のプログラミング言語を用いずにRのみで行う方法はないで...
拙い質問ではありますが,ご教授のほどを宜しくお願い致し...
データフレーム(ROC_table1.csv)
Ala Ethanolamine phosphate Hypotaurine Pro Uridine Glyc...
C 551.6935 29.13754 16.681 173.8867 45.10912 50....
C 607.481 0 13.91893 168.1533 42.37981 8...
C 506.6699 28.35182 16.64904 159.7178 43.60009 299.7703
C 530.9984 20.93959 11.42694 236.6067 42.33055 0
C 466.6074 19.3733 14.7419 176.2133 41.4...
C 532.253 18.66473 12.15251 172.6138 40.66632 18...
C 449.6792 9.951401 11.69104 130.8715 47.65735 0
C 403.2724 19.33708 0 155.0835 47.37078 230.7595
C 423.5579 19.48771 11.05998 140.1291 38.48613 238.7741
C 463.7251 23.312 0 126.3421 43.01137 24...
C 465.0218 28.58722 10.97927 137.6295 37.42445 177.0466
C 485.2845 35.14039 7.268277 143.0229 37.97251 223.5736
D 707.1228 25.1555 11.25501 237.0575 37.70653 27...
D 658.9739 31.52341 14.1557 197.7347 33.66692 31...
D 475.4444 31.67994 11.48172 132.5917 41.70935 545.9441
D 613.6305 23.5282 12.38427 164.597 41.2...
D 545.5581 33.57919 21.21189 174.7159 43.30637 419.7285
D 848.2421 32.92102 16.18306 248.8493 30.06797 402.9233
D 507.675 25.12478 17.90848 185.7012 36.81457 31...
D 528.8479 20.10386 17.13785 196.1179 40.02536 126.3903
#データの読み込み
x <- read.csv("ROC_table1.csv", header=T)
data.frame(x)
#ROCソースコード
source("http://aoki2.si.gunma-u.ac.jp/R/src/ROC.R", enco...
#患者群データを格納
Dise <- (x$X=="D")
disease.x <- x[Dise,"Ala"]
#健常者群データを格納
Cont <- (x$X=="C")
normal.x <- x[Cont,"Ala"]
#物質名のフォルダを作成
dir.create("Ala")
#新規フォルダへのディレクトリ変更
Direct <- getwd()
Direct1 <- paste(Direct,"Ala",sep = "/")
setwd(Direct1)
#フォルダに計算結果を格納
RR <- ROC0(disease.x, normal.x)
write.table(RR, file="Ala.data", sep="\t", row.names=FAL...
#フォルダに図を格納
bmp(filename = "Ala.bmp", width = 480, height = 480)
ROC0(disease.x, normal.x)
dev.off()
#ディレクトリを元へ戻す
setwd(Direct)
//
- eval と parse 関数を調べると良いでしょう。以下のような...
Name <- "Ala"
eval(parse(text=paste("dir.create('", Name, "')", sep=""...
- 関数の使用例まで教えて頂き,ありがとうございます.おか...
**新しい目盛りとかぶる [#v7dfb38c]
>[[さつまいも]] (2010-05-03 (月) 20:23:20)~
~
初めにヒストグラムを作ってから、X軸の目盛りを変えると最初...
どうしたら最初の目盛りを消すことができますか?~
//
- よく状況が分かりませんが,最初にヒストグラムを描くとき...
- 状況の説明不足申し訳ありません。河童の屁は,河童にあら...
**英語でテキストマイニングをする方法。語の頻度,形態素に...
>[[ピースケ]] (2010-04-29 (木) 17:51:37)~
~
英語でテキストマイニングをする方法を探しています。。語の...
//
- いっぱいあると思うんですけど。関連する教科書(書籍)も...
- ※コメントありがとうございます。日本語は,書籍が見かけた...
- http://bit.ly/azDxgi -- &new{2010-04-30 (金) 10:00:21};
- コメントありがとうございます。誠に感謝致します。 他に...
- ↑↑のリンクのCRAN Task View: Natural Language Processing...
- アドバイスありがとうございます。 -- [[ピースケ]] &new{2010...
**R-2.11.0でtcltkウィジェットの日本語が文字化け [#z00bea0d]
>[[せーだ]] (2010-04-29 (木) 12:19:03)~
~
Win7 Pro/WinXP Pro SP2を使っています。~
R-2.11.0で両方とも再現しましたので投稿します。~
~
以下のサンプルは、R-2.10.1までは問題なく動作していました。~
しかし、2.11.0では、コンボボックス内の日本語だけが文字化...
require(tcltk)
tclRequire("BWidget")
tt <- tktoplevel()
tkgrid(tklabel(tt,text="好きな果物は?"))
fruits <- c("林檎","蜜柑","バナナ","梨")
comboBox <- tkwidget(tt,"ComboBox",editable=FALSE,values...
tkgrid(comboBox)
OnOK <- function()
{
fruitChoice <- fruits[as.numeric(
tclvalue(tcl(comboBox,"getvalue")))+1]
tkdestroy(tt)
msg <- paste(fruitChoice,"は美味しいよね",sep="")
tkmessageBox(title="Fruit Choice",message=msg)
}
OK.but <-tkbutton(tt,text=" OK ",command=OnOK)
tkgrid(OK.but)
tkfocus(tt)
2.11.0の新機能説明の項目の中に
Package tcltk now sends strings to Tcl in UTF-8: this me...
that strings with a marked UTF-8 encoding are supported in
non-UTF-8 locales.
とあったので、これが影響しているのでしょうか。~
また、このような文字化けは、BWidgetやTktable等、Tcl/Tkの...
~
もし対処法をご存知の方がいらっしゃれば、ご教示頂きたく存...
宜しくお願い致します。~
//
- 51862以降は直ってるはず -- &new{2010-04-30 (金) 12:16:...
- ありがとうございます。対応するR-2.11.0patがリリースされ...
- r51867をDLし、直っていることを確認しました。御礼申し上...
**エラー処理 [#tdf74597]
>[[josephine]] (2010-04-28 (水) 18:34:02)~
~
大量のデータをS-W検定するスクリプトを作っています。~
不適当な標本データが原因のS-W検定のエラーを上手く処理して...
~
入力が適切な例
> a
[1] 0 0 0 1 0 0 0
> try(shapiro.test(a), silent=TRUE)
Shapiro-Wilk normality test
data: a
W = 0.453, p-value = 4.136e-06
> s_shapiro_a <- try(shapiro.test(a), silent=TRUE)
> s_shapiro_a
Shapiro-Wilk normality test
data: a
W = 0.453, p-value = 4.136e-06
入力が不適切な例
> b
[1] 0 0 0 0 0 0 0
> s_shapiro_b <- try(shapiro.test(b), silent=TRUE)
> s_shapiro_b
[1] "Error in shapiro.test(b) : all 'x' values are ident...
attr(,"class")
[1] "try-error"
try-errorの場合にはNAをs_shapiro_bに代入したいのですが、...
//
- おそらく[[ここ:http://www.okada.jp.org/RWiki/?%C3%CE%A4...
- 別解として,Shapiro.Wilk.test <- edit(shapiro.test) と...
この方法だと,無駄な出力(タイトルとかデータの表示とか)...
> Shapiro.Wilk.test(letters) # 数値データでない
[1] NA
> Shapiro.Wilk.test(c(1, 2)) # 少なすぎるデータ
[1] NA
> Shapiro.Wilk.test(c(1, 1, 1, 1, 1, 1)) # 全部同じデータ
[1] NA
> Shapiro.Wilk.test(rnorm(10000)) # 多すぎるデータ
[1] NA
> Shapiro.Wilk.test(c(1, 4, 3, 6)) # 妥当なデータ
Shapiro-Wilk normality test
data: c(1, 4, 3, 6)
W = 0.9984, p-value = 0.995
- ご親切に教えて頂きありがとうございます。取り合えずはs_s...
**contourplotを白黒で書きたい [#l231a7a7]
>[[orange]] (2010-04-26 (月) 16:32:03)~
~
グラフィックス参考実例集にあるcontourplot("Cube Root Ozo...
//
- ?contourplotでcol.regionsが答えでは? -- [[akira]] &new...
- すみません.素人なもので.col.regions = trellis.par.get...
- そうですね〜。カラーで書かれた図をお絵かきソフトで読み...
まあ,意地悪だと思われるのも業腹だから,contourplot の ex...
require(stats)
attach(environmental)
ozo.m <- loess((ozone^(1/3)) ~ wind * temperature * radi...
parametric = c("radiation", "wind"), span = 1, de...
w.marginal <- seq(min(wind), max(wind), length.out = 50)
t.marginal <- seq(min(temperature), max(temperature), le...
r.marginal <- seq(min(radiation), max(radiation), length...
wtr.marginal <- list(wind = w.marginal, temperature = t....
radiation = r.marginal)
grid <- expand.grid(wtr.marginal)
grid[, "fit"] <- c(predict(ozo.m, grid))
contourplot(fit ~ wind * temperature | radiation, data =...
cuts = 10, region = TRUE,
xlab = "Wind Speed (mph)",
ylab = "Temperature (F)",
main = "Cube Root Ozone (cube root ppb)",
col.regions=gray(seq(0, 1, by=0.01))) # これ...
detach()
前の人の回答は,あなたに対して「オンラインヘルプで contou...
- akiraさん,河童さん,ありがとうございました.河童さんに...
**計算結果の抽出方法 [#i7aa3ebf]
>[[uribo]] (2010-04-25 (日) 22:43:10)~
~
forループで計算を1000回繰り返したのですが、その計算結果の...
恐らく意、はじめのforループ計算の値の最後の値のみを出す式...
//
- よく分かりませんが,for の最後の答えを取り出すのは,for...
> func <- function(n)
+ {
+ for (i in 1:n) {
+ x <- rnorm(1)
+ }
+ return(x)
+ }
> replicate(100, func(sample(10, 1)))
[1] 0.19487424 1.39857201 0.97981611 -0.45801807 0...
[6] -0.95167954 -1.96734801 1.77910267 -0.51803260 0...
途中省略
[91] 0.76621199 0.66828262 1.04878517 0.12996552 -0...
[96] 2.47874580 -0.39178534 0.73668553 1.81568251 1...
- スカラーというのは[]のことでしょうか?replicateですか、...
- ふつうの変数のこと(例では x)ですよ。 -- [[河童の屁]] ...
**多次元項目反応理論のパッケージ [#u1343c9a]
>[[totoro]] (2010-04-24 (土) 00:33:22)~
~
Rで多次元項目反応理論(多次元IRT)または多次元カテゴリカル...
~
解析例などを示しているページがありましたら、教えていただ...
//
- MCMCpackの中にMCMCirtKd というK次元IRTがあるのを見つけ...
**latticeで縦軸目盛の位置を左にそろえたい [#ecfbed18]
>[[itok]] (2010-04-19 (月) 20:46:34)~
~
VistaでR-2.8.0を使っております。最近latticeを勉強しており...
教科書の例題に以下のようなヒストグラムがありました。~
data(Chem97, package = "mlmRev")
library(lattice)
histogram(~gcsescore | factor(score), data = Chem97)
~
出力をみると、縦軸目盛が、1行目では右に、2行目では左に...
他の例題をみても、このように互い違いになるのが標準設定の...
希望としては、両方の行で、縦軸目盛を左に統一したいのです...
ヘルプを読んでみましたが、どのパラメータを設定すればよい...
どうかよろしくおねがいいたします。~
//
- わたしは,lattice なんて嫌いで,使ったこと殆どないけど。~
histogram(~gcsescore | factor(score), data = Chem97, sca...
scales パラメータの alternating 要素についての説明をご参...
このような出力でよろしいんですよね? -- [[河童の屁]] &new...
&ref(henokappa.png);
- ありがとうございました!そうです。そのとおりです。scale...
**主成分分析のスコアプロットでグループごとに色分けできま...
>[[にわか]] (2010-04-18 (日) 00:35:23)~
~
//お世話になります。~
主成分分析のスコアプロットで、データのグループごとに色分...
irisで~
.PC <- princomp(~PL+PW+SL+SW, cor=TRUE, data=iris)~
scoreplot(.PC,labels="names",cex=0.7,col=2)~
このようにラベル表示はできるのですが、グルーピングが分か...
どなたかご教示頂けたら助かります。~
よろしくお願いします。~
//
- scoreplot ってどのパッケージにあるんだろうか。また,PL ...
- 回答頂き有難うございました。変な省略形で書いてしまい申...
**GLMでLSMEANの計算 [#q7f6bd0f]
>[[Kita]] (2010-04-14 (水) 15:33:17)~
~
//Rを使い始めたばかりで、初めて投稿させていただきます。~
//~
SASの場合、GLM解析を行った場合、Least Square Mean(LSMEAN...
~
よろしくお願いします。~
//
- 残差平方和のことですね?残差は出るので、それを二乗して...
> a <- rnorm(100)
> b <- rnorm(100)
> res <- glm(b ~ a)
> summary(res)
Call: glm(formula = b ~ a)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.41666 -0.58843 0.03412 0.62652 1.93350
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.04376 0.09761 -0.448 0.655
a 0.07966 0.10726 0.743 0.459
(Dispersion parameter for gaussian family taken to be 0....
Null deviance: 93.823 on 99 degrees of freedom
Residual deviance: 93.298 on 98 degrees of freedom
AIC: 282.85
Number of Fisher Scoring iterations: 2
> names(res)
[1] "coefficients" "residuals" "fitted.valu...
[4] "effects" "R" "rank" ...
[7] "qr" "family" "linear.pred...
[10] "deviance" "aic" "null.devia...
[13] "iter" "weights" "prior.weig...
[16] "df.residual" "df.null" "y" ...
[19] "converged" "boundary" "model" ...
[22] "call" "formula" "terms" ...
[25] "data" "offset" "control" ...
[28] "method" "contrasts" "xlevels" ...
> sum(res$residuals^2)
[1] 93.2978
- Residual deviance: 93.298 というところに出ているのが,...
glm が返すオブジェクトの deviance 要素に入っています。上...
- ご返事ありがとうございます。Residual devianceとは違いま...
- あぁ、よく考えたら残差平方和は"Sum of Square"でしたね。...
> a <- rnorm(100)
> b <- rnorm(100)
> c <- rnorm(100)
> res <- glm(b ~ a*c)
> summary(res)
Call:
glm(formula = b ~ a * c)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.26867 -0.54240 -0.08402 0.54603 2.49951
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.03420 0.08595 0.398 0.692
a -0.12119 0.09144 -1.325 0.188
c 0.06217 0.08400 0.740 0.461
a:c 0.04987 0.08823 0.565 0.573
(Dispersion parameter for gaussian family taken to be 0....
Null deviance: 70.126 on 99 degrees of freedom
Residual deviance: 68.512 on 96 degrees of freedom
AIC: 255.97
Number of Fisher Scoring iterations: 2
これで交互作用項a*cが出ています。-- [[Saito]] &new{2010-0...
- 既出でしたね。[[ここにありますよ:http://www.okada.jp.or...
- 河童の屁さんから教わったところで問題解決しました。どう...
**すでにCRANから消えたパッケージをインストールする方法に...
>[[Saito]] (2010-04-08 (木) 23:03:40)~
~
//いつもお世話になっています。~
下のほうで、[[adapt関数以外で重積分をする方法について:htt...
少し前の話ですので、新しく質問をさせていただきました。~
~
あれから色々と勉強して、以下のようなサイトを見ながらやっ...
http://www.okada.jp.org/RWiki/?RcmdrPlugin%C4%B6%C6%FE%CC...
http://www.okada.jp.org/RWiki/?%BB%E4%C5%AA%A5%D1%A5%C3%A...
http://www.okada.jp.org/RWiki/?Windows%A4%C7R%A4%CE%A5%D1...
~
まず今回はすでにあるtarファイルを使いますので、最初から作...
cd c:\
R CMD INSTALL adapt_1.0-4.tar.gz
としましたが、以下のようなメッセージが出てしまい先に進め...
c:\>R CMD INSTALL adapt_1.0-4.tar.gz
* installing to library 'C:\Users\Saito\Documents/R/win6...
* installing *source* package 'adapt' ...
** libs
DLLフャ...
x86_64-w64-mingw32-gfortran -O2 -c adapt.f -o adapt.o
make: x86_64-w64-mingw32-gfortran: Command not found
make: *** [adapt.o] Error 127
... ョケ
ERROR: compilation failed for package 'adapt'
* removing 'C:\Users\Saito\Documents/R/win64-library/2.1...
* restoring previous 'C:\Users\Saito\Documents/R/win64-l...
~
これはフォートランの命令が読めない、というメッセージなの...
c:\>Path
PATH=c:\Rtools\bin;c:\Rtools\perl\bin;c:\Rtools\MinGW\bin;
C:\Program Files (x86)\HTML Help Workshop;
C:\Program Files\R \R-2.11.0alpha-x64\bin;
C:\Program Files (x86)\MiKTeX 2.8\miktex \bin;
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\
となっています。~
~
ちなみにOSはWindows7、Rのバージョンは、R-2.11.0alpha-x64...
自分では手詰まりになってしまって、解決できませんでした。...
~
どうぞよろしくお願いいたします。~
//
- 早速の回答ありがとうございました。(あれ?消えてしまい...
すぐにコンパイルで調べたら他にもこのような[[サイト:http:/...
しかし、あり得ないことだと思うのですが、[[教えていただい...
要はexeファイルが見つかればいいのかと思い、解凍したフォル...
ちなみにperlやgccはRtoolに入っていますし、64bit版だと新し...
ちなみに今のPathは
c:\>Path
PATH=C:\mingw\mingw-w64-crt;C:\mingw\bin;C:\msys\1.0\bin...
c:\Rtools\MinGW\bin;C:\Program Files (x86)\HTML Help Wo...
C:\Program Files (x86)\MiKTeX 2.8\miktex\bin;C:\Windows\...
C:\Windows\System32\WindowsPowerShell\v1.0\
と、少しづつ汚くなってきています…。
もし何かお気づきの点がありましたら、ご助言いただけると幸...
- Command not found って、x86_64-w64-mingw32-gfortranて...
- ご助言ありがとうございます。手でたたくとは、具体的にど...
c:\Rtools\MinGW\bin
の中にはgfortranというファイルは置いてあるのですが…。試し...
PATH=C:\x86_64\w64\mingw32;C:\mingw\mingw-w64-crt;C:\min...
\bin;c:\Rtools\bin;c:\Rtools\perl\bin;c:\Rtools\MinGW\bi...
(x86)\HTMLHelp Workshop;C:\Program Files\R\R-2.11.0alpha...
Files (x86)\MiKTeX 2.8\miktex\bin;C:\Windows\system32;C:...
\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
すみません、いまだに解決していません。まだ何かお気づきの...
- コンソールのプロンプトに対して gfortran と入力したらど...
- ご助言ありがとうございます。Rは立ち上がります。以下がそ...
C:\Users\Saito>R
R version 2.11.0 alpha (2010-04-06 r51611)
Copyright (C) 2010 The R Foundation for Statistical Comp...
ISBN 3-900051-07-0
RヘAゥRネ\tgEFAナAuョSノウロリvナキB
フノ]ヲホAゥRノアトzzキアニェナォワキB
zzフレラノヨオトヘA'license()'「ヘ'licence()'ニヘオトュセウ「B
Rヘスュフv」メノ、ッvWFNgナキB
レオュヘ'contributors()'ニヘオトュセウ「B
ワスARRフpbP[Woナィナpキロフ`ョノツ「トヘ
'citation()'ニヘオトュセウ「B
'demo()'ニヘキホfンアニェナォワキB
'help()'ニキホICwvェoワキB
'help.start()'ナHTMLuEUノwvェンワキB
'q()'ニヘキホRIケオワキB
> rnorm(10)
[1] -0.8424220 -0.4483672 -1.2258821 0.1038380 -0.8283...
[7] 0.1248794 -1.9883918 0.2761847 1.2740648
>
ただ、gfortranとやると、
C:\Users\Saito>gfortran
gfortran: no input files
と出てしまいます。Pathがうまくつながっていないのでしょう...
- no input files というのは、コマンドの後にコンパイルすべ...
私の場合,Rtools をインストールし,path に R へのパスを追...
64ビット版を作ろうとしているのでしょうか?そうであったと...
なお,実行例2行目にも書いてありますが,adapt.dll は,マイ...
&ref(install-adapt.png);
- ご助言ありがとうございます。しかし、何度も再起動、アン...
C:\Users\Saito\Downloads>R CMD INSTALL adapt_1.0-4.tar.gz
* installing to library 'c:/PROGRA~2/R/R-210~1.1/library'
G[F G[FfBNgヨフCXg[ツェワケ 'c:/PROGRA~2 /R/R-210~1.1/libra...
一応河童の屁さんの言うとおり、Rtoolsを再インストールして...
ひょっとしたら64bitに入れるのがそもそもムリなんじゃないか...
以下が現在のパスです。もちろんRやgfortranと打てば、上記の...
PATH=c:\Rtools\bin;c:\Rtools\perl\bin;c:\Rtools\MinGW\bi...
(x86)\R\R-2.10.1\bin;C:\Windows\system32;C:\Windows;C:\W...
C:\Windows\System32\WindowsPowerShell\v1.0\
環境はWindows7なのですが、もしよろしければうまく行った動...
- 失礼しました,Saito さんは x64 R-2.11.1 Pre-release に...
- いえいえ。動作確認していただいて本当にありがとうござい...
将来的にはやはり(私個人の利用する範囲で)なくてはならない...
**相関行列からクラスタ解析 [#j8957909]
>[[KM]] (2010-04-07 (水) 16:28:46)~
~
相関行列を類似度行列としてクラスタ解析したいと考えていま...
hclust()にas.dist(x)という形で読み込みたいのですが、hclus...
−1x相関係数を非類似度として読み込んでみましたが、hang=-1...
~
以下の2点いずれかができれば解決すると思うのですが、いか...
・類似行列のクラスタ解析ができる方法を実行~
・hclustでラベルを揃える位置を0以外の位置に指定する~
~
よろしくお願いします。~
//
- 相関係数行列をクラスター分析に用いるには,相関係数行列...
> (r <- cor(iris[,1:4]))
Sepal.Length Sepal.Width Petal.Length Petal...
Sepal.Length 1.0000000 -0.1175698 0.8717538 0.8...
Sepal.Width -0.1175698 1.0000000 -0.4284401 -0.3...
Petal.Length 0.8717538 -0.4284401 1.0000000 0.9...
Petal.Width 0.8179411 -0.3661259 0.9628654 1.0...
> (d <- as.dist(2*(1-r)))
Sepal.Length Sepal.Width Petal.Length
Sepal.Width 2.23513957
Petal.Length 0.25649245 2.85688021
Petal.Width 0.36411775 2.73225187 0.07426914
> plot(hclust(d), hang=-1)
&ref(r-cluster.png);
- すばやい、丁寧なご説明ありがとうございます。試してみた...
- 相関係数だからですよ。相関係数の定義と距離の定義を考え...
- ありがとうございます。勉強になりましたm(_ _)m -- [[KM]]...
**optim関数について [#n2ac304c]
>[[あ〜る]] (2010-04-07 (水) 11:19:57)~
~
//お世話になっております。~
//~
Rのoptim関数と同じ関数をjavaで計算したく、javaのlibraryで...
また、javaで完結しているコード(他の言語を呼び出したりしな...
~
実際に計算したいのは、L-BFGS-B法ですが、javaのlibraryでは...
~
もしご存知の方がいらっしゃったらご教示ください。~
よろしくお願いいたします。~
//
**maptoolsを使った地図グラフ作成について [#p1b8aebb]
>[[kojiro_i619]] (2010-03-31 (水) 13:50:28)~
~
お世話になります。中澤先生の本から、以下
gnm <- readShapePoly("gunma.shp")
gnmdata <- gnm$att.data
gnmpoly <- map2SpatialPolygons(gnm, region.id=att(gnm, "...
## <−これがうまくいきません。
gunmadata <- gnmdata
gunmapoly <- gnmpoly
aged <- read.delim("agedprop.txt")
gunmadata <- merge(aged, gunmadata, sort=F, by="JCODE")
DD <- gunmadata$AP2006
classes <- cut(DD, seq(min(DD), max(DD), length=5), incl...
cols <- topo.colors(4)
plot(gunmapoly, col=cols[ordered(classes)], xlab="", yla...
legend(max(x)-0.3*(max(x)-min(x)), min(y)+0.1*(max(y)-mi...
legend=names(table(classes)), cex=0.6,fill=cols)
title("群馬県市町村の65歳以上高齢者割合4区分(2006年)")
text(x, y, gunmadata$CITY1, cex=0.5, pos=1, offset=0)
などと、作ったのですが、途中の命令が、ないようです。~
見本のコードでも、教えていただければ、幸いです。~
//
- すみません。maptoolsのバージョンアップにより,以前あっ...
- 最低限の代替コードと説明を[[書籍のサポートサイト:http:/...
**forループの高速化 [#c725a2fb]
>[[rbegginer]] (2010-03-30 (火) 21:27:26)~
~
いつも勉強させていただいております。~
以下のプログラムについて、高速化のコツ、ヒントなどをいた...
~
以下のようなプログラムで、1千万の母集団から5サンプルの抽...
5サンプルが終わったら6,7,8...100とサンプルサイズを変えて...
~
実はサンプル抽出を1000回ではなく10000回行いたいのですが、...
時間がかかっていると部分、高速化できるような書き方があり...
こちらのTipsでforは時間がかかるという記述を読みましたが、...
どうぞよろしくお願いします。環境はWindowsVista, R2.10.1で...
pop <- round(rnorm(10000000, mean=300, sd=20)+(300*rexp(...
ssz <- c(5,6,7,8,9,10,15,20,25,35,50,100) # 抽出するサン...
nrecv <- 0
nremv <- 0
for(j in 1:length(ssz)) {
for(i in 1:1000){
svct <- sample(pop, ssz[j])
gmean <- mean(svct)
gsd <- sd(svct)
cfv.u <- gmean+(3*gsd) # 外れ値のカットオフポイン...
cfv.l <- gmean-(3*gsd) # 外れ値のカットオフポイン...
tmp <- svct
tmp[tmp>cfv.u] <- NA # 外れ値除去
tmp[tmp<cfv.l] <- NA # 外れ値除去
svct.el <- tmp
nrecv[i] <- mean(svct.el, na.rm=T) # 外れ値除去後...
}
nremv[j] <- mean(nrecv) # 1000個の平均値の平均
}
//
- covct3 の値はいかほど? -- [[河童の屁]] &new{2010-03-30...
- 申し訳ありません。修正ミスでした。"3"に修正しました。実...
- 他の記事でも書きましたけど,for が apply や sapply など...
prog3 <- function()
{
set.seed(666)
# pop <- round(rnorm(10000000, mean=300, sd=20)+(300*rex...
ssz <- c(5,6,7,8,9,10,15,20,25,35,50,100) # 抽出するサ...
n <- length(ssz)
m <- 5000
nrecv <- numeric(m)
nremv <- numeric(n)
covct3 <- 1
for(j in 1:n) {
pop <- matrix(round(rnorm(ssz[j]*m, mean=300, sd=20)+
(300*rexp(ssz[j]*m))), ssz[j]) # ...
gmean <- colMeans(pop)
gsd <- sd(pop)
cfv.u <- gmean+(covct3*gsd) # 外れ値のカットオフポイン...
cfv.l <- gmean-(covct3*gsd) # 外れ値のカットオフポイン...
for (i in 1:m) {
svct <- pop[,i]
svct <- svct[cfv.l[i] < svct & svct < cfv.u[i]]
nrecv[i] <- mean(svct)
}
nremv[j] <- mean(nrecv) # m 個の平均値の平均
}
return(nremv)
}
> system.time((ans <- prog3()))
ユーザ システム 経過
7.881 0.127 8.041
> ans
[1] 527.4018 530.2227 530.0385 530.0244 528.1573 530.5734
[7] 525.2133 524.3569 523.8537 520.2583 518.8018 516.8923
- 河童様、大変素晴らしいコードをありがとうございます。無...
河童様のコードで実行していこうと思います。また、関数の形...
心から感謝いたします。 -- [[rbegginer]] &new{2010-03-30 (...
- Rのcompilerがありますが既にお使いですか? -- [[のざわ]]...
- compilerは使っていません。のざわ様のレスで初めてそれを...
- cranにないんですね>compiler。というかwindows用がないん...
- 行儀が悪くても良いならcompilerの中身はRのスクリプトなの...
- compilerは、ループが、だいたい3倍早くなります。それ以...
- 河童さまのプログラムをcompilerに掛けてみました。 user...
- のざわ様、わざわざありがとうございます。そうするとやは...
**岡田昌史編 The R Book CD-ROM について [#aa9c1143]
>[[kojiro_i619]] (2010-03-29 (月) 13:10:05)~
~
CD−ROMの内容をロードするWEBサイトがありましたら、...
//
- CD−ROMは手に入りました。Rmapがなぜかzipファイルか...
- 現行RではRmapは使えないことが、わかりました。 -- [...
- Rmapじゃなくてmaptoolsを使いましょう -- [[okinawa]] &ne...
- maptoolsをインストールして、library(maptools)としても、...
- winVistaでR2.10.1を使っています。 -- [[kojiro_i619]] &n...
- [[Q&A (初級者コース)/11:http://www.okada.jp.org/RWik...
- 私も見つけました。金先生の「maptoolsのクラス・オブジェ...
- > Ola$att.data<-cbind(Ola$att.data,high.low)で、属性情...
- get.Pcent( ),Map2polyの両方とも、最新のmaptoolsには使...
**anova(lm(count~spray))でdim(X) must have a positive len...
>[[にわか]] (2010-03-28 (日) 00:06:36)~
~
//お世話になります。~
winXPでR2.10.1を使っています。~
線形モデルの結果にaov、anovaを用いた分散分析を行うと、ano...
いろんな所(たとえばhttp://www1.doshisha.ac.jp/~mjin/R/15...
漠然とした質問で恐縮ですが、どのようなところに問題ありそ...
よろしくご教示いただけたら幸いです。~
//
- count, spray は InsectSprays にあるやつですか?だとすれ...
以下のようにすれば,エラーは出ませんけどね? -- [[河童の...
> anova(lm(count~spray, data=InsectSprays))
Analysis of Variance Table
Response: count
Df Sum Sq Mean Sq F value Pr(>F)
spray 5 2668.8 533.77 34.702 < 2.2e-16 ***
Residuals 66 1015.2 15.38
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1...
- 河童の屁さん、有り難うございます。まず、attach(InsectSp...
**mac osx 10.6.2 で RPostgreSQLパッケージをロードできま...
>[[jiro]] (2010-03-25 (木) 23:11:55)~
~
OS: mac osx 10.6.2( intel mac core 2 duo )~
R ver: 2.10.1(32bit、64bit ともにインストール)~
PostgreSQL ver: 8.3.1~
~
上記の環境にて、R言語からPostgreSQLに接続しようとしていま...
DBIのver 0.2-5 を install.package(DBI) コマンドにてインス...
$> sudo R CMD INSTALL RPostgreSQL_0.1-6.tar
途中、
rawToChar(magic[1:5])中で警告がありました:
文字列をnullに切り詰めました: 'Rpo\0\0'
という警告がでたもののインストールには成功したようです。~
さて、Rのコンソールから、
> library( RPostgreSQL )
と実行すると下記のメッセージが表示され、パッケージのロー...
64ビット版で失敗しているようなので、この問題の解決方法か...
~
よろしくお願いします。
Error in dyn.load(file, DLLpath = DLLpath, ...) : ~
共有ライブラリ '/Library/Frameworks/R.framework/Resour...
libs/x86_64/RPostgreSQL.so' を読み込めません
dlopen(/Library/Frameworks/R.framework/Resources/library/
RPostgreSQL/libs/x86_64/RPostgreSQL.so, 6):
Symbol not found: _PQbackendPID
Referenced from: /Library/Frameworks/R.framework/Resour...
RPostgreSQL/libs/x86_64/
RPostgreSQL.so
Expected in: flat namespace
in /Library/Frameworks/R.framework/Resources/library/RPo...
エラー: 'RPostgreSQL' に対するパッケージもしくは名前空...
//
- 自分でやってみたわけではないので恐縮ですが、 http://cod...
- やってみましたが進展なしでした。埒があかないのでRpgSQL...
**PLS回帰用のNIRデータの構造(再) [#e4b4ab4a]
>[[にわか]] (2010-03-24 (水) 16:07:09)~
~
標記の題名で11でお世話になった者です。~
クリアに解決しましたので、投稿しておきます。~
説明変数がマトリックスの場合には、protect関数(?) のI()を...
例)
y <- c(2, 4, 6)
z <-matrix(1:12, 3, 4)
mydata <- data.frame(Y=y, Z=I(z))
以上、お世話になりました。~
//
- mydata<-data.frame(Y=y) ; mydata$Z<-z でもいいようです...
**コンソールの内容を保存するコード [#of17b8c2]
>[[rbeginner]] (2010-03-20 (土) 14:07:10)~
~
いつも勉強させていただいています。~
~
コンソールに表示される命令と出力を全て保存する関数はある...
メニューからファイル -> ファイルを保存 を選ぶとlastsave....
理想はsink(... append=T, split=T) のように逐一保存したい...
~
どうぞよろしくお願いいたします。~
//
- このサイト内の「R出力の記録」ページが参考になる? -- &...
- 申し訳ありません。環境を伝え忘れておりました。WindowsVi...
- キーワード "yatee" でネット検索。Windows で Unix の tee...
- ご回答ありがとうございます。コマンドプロンプトからRを使...
**GLMによる予測値の予測区間の求め方 [#ede61550]
>[[saka]] (2010-03-19 (金) 13:29:49)~
~
//初めて投稿させていただきます。どなたか教えて頂けますよ...
//~
GLMでガンマ分布とlogリンク関数を使って,将来の魚の漁獲量...
~
推定値の信頼区間ではなく,それより広い範囲になることが多...
~
来年の予測漁獲量は○トンくらいだけど,95%の確率で○〜○トン...
~
GLMで解析するデータは下のようなものです。~
~
これに,例えば新たに説明変数1,2,3がそれぞれ(12,5,1500...
よろしくお願いします。
目的変数 説明変数1 説明変数2 説明変数3
7553 11.1 0.6 2240
14897 13.0 1.6 1292
30957 12.6 6.2 972
35056 9.7 26.2 2655
17436 11.4 9.4 547
4656 14.0 0.2 820
6879 12.3 0.0 1223
41853 13.9 4.4 2043
16308 12.1 4.8 1875
11293 11.8 3.0 1363
3964 10.2 9.8 236
7993 13.1 0.5 1236
6748 11.5 0.2 2144
3522 12.2 0.0 758
15395 10.5 7.6 1601
7567 11.3 6.0 1175
5823 10.7 4.4 880
以上です。~
//
- 管理者の方へ、投稿内容をきれいに整理していただき、あり...
- [[surg]] &new{2010-03-20 (土) 16:01:46};
> data <- data.frame(
+ y = c(7553, 14897, 30957, 35056, 17436, 4656, 6879, 4...
+ 16308, 11293, 3964, 7993, 6748, 3522, 15395, 7567, 5...
+ x1 = c(11.1, 13, 12.6, 9.7, 11.4, 14, 12.3, 13.9, 12....
+ 10.2, 13.1, 11.5, 12.2, 10.5, 11.3, 10.7),
+ x2 = c(0.6, 1.6, 6.2, 26.2, 9.4, 0.2, 0, 4.4, 4.8, 3,...
+ 0.5, 0.2, 0, 7.6, 6, 4.4),
+ x3 = c(2240, 1292, 972, 2655, 547, 820, 1223, 2043, 1...
+ 1363, 236, 1236, 2144, 758, 1601, 1175, 880)
+ )
>
> data.glm <- glm(y ~ x1 + x2 + x3, family = Gamma(log),...
>
> data.prd <- predict(data.glm, newdata=data.frame(x1=12...
+ se.fit=TRUE)
>
> exp(data.prd$fit)
1
13082.80
> exp(data.prd$fit - 1.96 * data.prd$se.fit)
1
10336.17
> exp(data.prd$fit + 1.96 * data.prd$se.fit)
1
16559.29
- surgさん、回答を有難うございました。大変申し訳ないです...
- > 管理者の方へ、投稿内容をきれいに整理していただき、あ...
そんな編集は,投稿者がやるべき事です。管理者がやったもの...
それと,あなたがやるべきことは,データだけを示すことでは...
- 説明不足の投稿内容で申し訳ありませんでした。また、投稿...
- 質問投稿にプログラムがなくてすみませんでした。データを...
- だれだか知りませんが、たしなめる言葉もいい加減にしない...
- この投稿で不愉快な思いをさせてしまった方には本当に申し...
- 質問の意図を取り違えておりました。線形モデルでは残差の...
- surgさん、追加の説明をありがとうございました。GLMの場合...
**対応のある比率の検定? [#r033a4f5]
>[[にわか]] (2010-03-17 (水) 23:31:15)~
~
//お世話になります。~
ある植物を植えたときに、処理Aと処理Bで活着率に差がある...
各時期に処理A,Bとも30株ずつ植えたうち、表の株数が活...
~
<各30個体を植えたときの活着した株数>~
時期1 時期2 時期3 時期4~
処理A 14株 13株 10株 15株~
処理B 15株 14株 13株 16株~
~
この場合、処理A、Bのどちらが活着に有効かを検定する場合...
prop.test(c(10,19),c(30,30))~
というように比率の検定をすればいいと思うのですが、~
全体で見る場合、単に合計で 52/120 と 58/120 の比率の...
あるいは、「対応のある比率の検定」のようながあるのでしょ...
どなたかご教示下さい。~
よろしくお願いします。~
//
- 時期を層と考えて Mantel-Haenszel で活着のオッズ比が有意...
- X1 を処理、X2 を時期、Yは活着したかどうか、としてロジス...
- ご教示、有り難うございます。マンテル・ヘンツェルの方、...
- ところで、活着株数あるいは活着率の数字を使って、対応の...
- t 検定を使う上での仮定(独立,母集団は正規分布)はクリ...
- 有り難うございます。どちらも独立性も正規性も検定すると...
**adapt関数以外で重積分をする方法について [#effd9bbc]
>[[Saito]] (2010-03-13 (土) 15:10:03)~
~
//いつもお世話になっております。~
あちこち調べ、自分でも試したのですが、わからなかったので...
~
最近(といっても数ヶ月前)にCRANからadaptパッケージが消え...
今まで重積分をするときにはadaptを使って積分していたので、...
~
しかし、2.10.0以降になると以下のようにre-installを求めら...
> library(adapt)
エラー: package 'adapt' was built before R 2.10.0: plea...
~
re-installしようにもCRANにないのでできません。そこで仕方...
~
どなたか、解決策をご存知でしたらご教授願えないでしょうか。~
なお、環境はWindows 7、x64 R-2.11.1 Pre-releaseです。
//
- 2.10.0より古いRを使えばいいと思います。 -- &new{2010-0...
- 回答ありがとうございます。確かに、現在はそうしているの...
- 新しいバージョンのRに対するバイナリがないだけなので、自...
- 回答ありがとうございます。~
やり方を聞く限りでは今までやったことがないことのようです...
**prcompを用いた固有値・固有ベクトルの計算について [#n758...
>[[初心者]] (2010-03-10 (水) 00:24:41)~
~
prcompを使用して固有値・固有ベクトルを算出しているのです...
・Rの出力
> A <- matrix(c(0, -4, 4, 1, 4, -3, 1, 2, -1), nrow=3)
> A
[,1] [,2] [,3]
[1,] 0 1 1
[2,] -4 4 2
[3,] 4 -3 -1
> prcomp(A, scale=F, center=F)
Standard deviations:
[1] 5.579673e+00 9.312648e-01 1.184667e-16
Rotation:
PC1 PC2 PC3
[1,] -0.7093545 -0.6210515 -0.3333333
[2,] 0.6431273 -0.3767530 -0.6666667
[3,] 0.2884500 -0.6872788 0.6666667
・参考にしたURL~
http://www004.upp.so-net.ne.jp/s_honma/urawaza/eigenvecto...
このページによると固有値は0,1,2となるはずなのですが、何か...
Windows XPで R2.8.1 を使用しています。~
//
- さきほどの初心者です。すみません、投稿が汚いですね。取...
- 整形しました -- [[他の初心者(下の質問者)]] &new{2010-...
- eigen(A)でリンク先と同等の結果になると思います。 -- &n...
- 蛇足ですが解説しておきましょうか。質問者が得た結果は,...
> # prcomp(A, scale=F, center=F) で実行されること
> A <- matrix(c(0, -4, 4, 1, 4, -3, 1, 2, -1), nrow=3)
> B <- t(A)%*%A/(nrow(A)-1)
> ans <- eigen(B)
> sqrt(ans$values) # Standard deviations:
[1] 5.579673e+00 9.312648e-01 2.267999e-08
> ans$vectors # Rotation:(列単位で符合は任意)
[,1] [,2] [,3]
[1,] 0.7093545 0.6210515 -0.3333333
[2,] -0.6431273 0.3767530 -0.6666667
[3,] -0.2884500 0.6872788 0.6666667
- 質問者は、prcompというより主成分分析をどういうものかを...
- 固有値・固有ベクトルを求めるために主成分分析を使うとい...
- だからprcompが何をするのか知っての質問だと思い、最終目...
- 「prcompを用いた固有値・固有ベクトルの計算」とあるわけ...
- 素早いご返信ありがとうございました。あまり内容を知って...
**Rの正規表現について [#cc20902e]
>[[初心者]] (2010-03-10 (水) 00:04:04)~
~
Windows VistaのR-2.10.1です.(Rの他のバージョン,他のOS...
~
例えば,「何章」や「何節」もしくは「番号のみ」(いずれも1...
section <- c("1", "23", "4部", "56部", "7章", "89章")
section <- c(section, "1", "23", "4節", "56節")
sub("([[:digit:]]{1,2})[^[:digit:]]?", "\\1", section)
でしてみましたが、結果が
[1] "1" "23" "4部" "56" "7章" "89" "1" "...
のようになってしまいました.~
どのようにしたら,うまく番号だけ抜き出せるのでしょうか?
また何が原因なのでしょうか?? 宜しくお願いいたします.~
//
- chartr("[0-9]","[0-9]",gsub("^([0-90-9]+).*$", "\\1...
- chartr関数って知りませんでしたので,とても良いものを教...
私は言語を勉強したことがないので,内部に何が使われている...
[:digit:]というのは,私が試した結果は全角数字は対応してい...
ありがたくコード使わせていただきます.ありがとうございま...
- CSIで4byte使うような環境の事を全く考えて無いんです(それ...
- ありがとうございます。知らない用語もありましたので調べ...
**listオブジェクトのgrepについて [#lb84f496]
>[[R初心者]] (2010-03-09 (火) 10:36:33)~
~
R-2.10.1をWindows Vistaで使用しています。~
mylist <- list(alph=letters, Alph=LETTERS, num=as.charac...
grep("A", mylist, ignore.case=FALSE) # (1)
grep("C", mylist, ignore.case=FALSE) # (2)
grep("c", mylist, ignore.case=FALSE) # (3)
ここで、(1)と(2)などpatternが(3)の "c" 以外のgrepの挙動は...
しかし、(3)のgrepの挙動がおかしい(私が望んでいるものでは...
本来ならば 1 が帰ってきて欲しいのですが、 c(1,2,3) が帰っ...
1 と帰ってくるような手立てはございますでしょうか?
また、これはバグなのでしょうか?~
grep以外の関数での解決方法でも結構です。よろしくお願いい...
//
- こんなので良い? listはstructureした文字列になるのでc("A...
lgrep<-function (pattern, x, ignore.case = FALSE, extend...
value = FALSE, fixed = FALSE, useBytes = FALSE, inve...
unlist(lapply(mylist, function(x) !(!length(grep(pat...
x, ignore.case, extended, perl, value, fixed, us...
invert))))) }
lgrep("c",mylist,ignore.case=FALSE)
alph Alph num
TRUE FALSE FALSE
- 戻り値を整えて,以下のように -- [[河童の屁]] &new{2010-...
> lgrep<-function (pattern, x, ignore.case = FALSE, exte...
+ value = FALSE, fixed = FALSE, useBytes = FALSE, in...
+ unname(which(sapply(mylist, function(x) length(gre...
+ x, ignore.case, extended, perl, value, fixed, ...
+ invert)))==TRUE)) }
> #
> lgrep("A", mylist, ignore.case=FALSE) # (1)
[1] 2
> lgrep("C", mylist, ignore.case=FALSE) # (2)
[1] 2
> lgrep("c", mylist, ignore.case=FALSE) # (3)
[1] 1
- ご返信ありがとうございます!~
structureしたというのがまだよく分かりませんが,属性がセッ...
試しにlistの中にdeta.frameを入れて、data.frameなどでgrep...
まだ,structureした後、なぜcが全部にひっかるのかわかりま...
しかしながら、皆さまのお陰で、期待する動作を得ることがで...
- ああ、「c(...)」全体が検索対象なんですね。「\\(」でもひ...
本当にありがとうございました。 -- [[R初心者]] &new{2010-0...
- 1行なら
sapply(mylist,function(x,y) length(grep(y,x))>0,y="A")#...
seq(mylist)[sapply(mylist,function(x,y) length(grep(y,x)...
とか。でも、length(grep(y,x))>0は美しくないね。 -- [[akir...
- ありがとうございます! 皆さまのコードを拝見するとなる...
以下、本来の目的にあったものではありませんが、grepで引っ...
a <- c("A", "B", "CD")
y <- 3:9
x <- data.frame(a=(1:4), b=c("a","b","c","d"), value=c(T...
x <- list(a=a, num=y, data=x)
# 関数の定義
lgrep <- function(pattern, x, ...,
classes = "ANY", deflt = NULL,
how = c("unlist", "replace", "list" )) {
rapply(x, function(x, pattern, ...) grep(pattern, x, ....
classes=classes, deflt=deflt, how=how, pattern=...
}
lgrep("\\<A\\>", x, how="list", deflt=NA)
structureですが、やっぱりよくわかりません・・・。なぜ、da...
- 1行で頑張るなら、
lapply(x, function(x,y) apply(as.matrix(x),2,function(x,...
こんな感じかな。もっと入れ子構造ならrapplyを使うのでしょ...
- ありがとうございます! 私はapply系関数を自分でうまく使...
できることは、他人様のコードを見て、自分なりに少し修正す...
英語も全くできないので、マニュアルも苦労しながら読んでい...
apply系関数の中に、apply系関数をいれるなんてことは完全に...
ありがたくapply系関数の勉強にも使わせていただきます!~
ありがとうございました。 -- [[R初心者]] &new{2010-03-10 (...
終了行:
COLOR(blue){SIZE(18){新規投稿はできません。}}~
COLOR(green){SIZE(20){初心者のための R および RjpWiki に...
COLOR(red){過去の記事のアーカイブ}。~
-[[Q&A (初級者コース)/11]] (元記事が 2009-04-28 より 2...
-[[Q&A (初級者コース)/10]] (元記事が 2008-11-17 より 2...
-[[初級Q&A アーカイブ(9)]] (元記事が 2008-01-06 より 2...
-[[初級Q&A アーカイブ(8)]] (元記事が 2007-07-02 より 2...
-[[初級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
----
**緯度経度から距離の換算 [#f4c04e04]
>[[きむ]] (2011-01-07 (金) 18:12:19)~
~
いつも参考にさせていただいています。~
現在、緯度経度で座標が指定されている地域標準メッシュ(3次...
そこで、RjpWikiの、[[「RでGPS」:http://www.okada.jp.org/R...
library(sp)
ll <- matrix(c(34, 34, 138, 139), ncol=2)
km <- spDistsN1(ll, ll[1,], longlat=T)
sum(zapsmall(km))
とすると110.96kmとなりますが正確には92.38kmが正?また、
library(sp)
ll <- matrix(c(34, 35, 139, 139), ncol=2)
km <- spDistsN1(ll, ll[1,], longlat=T)
sum(zapsmall(km))
とすると結果が0になってしまいます。使用方法に誤りがあるの...
また、今のところ上記関数を用いて基準点からの距離で各メッ...
//
- 「結果が0になる」という部分のみにコメント。~
0 には,なりませんけど?
> library(sp)
> ll <- matrix(c(34, 35, 139, 139), ncol=2)
> km <- spDistsN1(ll, ll[1,], longlat=T)
> sum(zapsmall(km))
[1] 84.13467
> ll
[,1] [,2]
[1,] 34 139
[2,] 35 139
> km
[1] 0.00000 84.13467
> zapsmall(km)
[1] 0.00000 84.13467
> sum(zapsmall(km))
[1] 84.13467
どうなっているんでしょうね。 -- [[河童の屁は,河童にあら...
- 「緯度 経度 距離 計算」でググって,「[[地球上の2地点間...
国土地理院の[[計算式:http://vldb.gsi.go.jp/sokuchi/survey...
- spパッケージでは、WGS84を使っていますね。測地系と楕円体...
- 河童の屁は,河童にあらず,屁である様、ooki様コメントあ...
- 「緯度経度をx,y座標(平面直角座標系)に変換できる関数」...
- 谷村先生、コメントありがとうございました。値が異なるの...
- 取り急ぎ、1点だけ反応します。東経139度、北緯34-35度の距...
- 谷村先生、コメントありがとうございます。ご指摘のとおり4...
東経139度、北緯34-35度の距離を出す場合(当初質問の2番目の...
> library(sp)
> ll <- matrix(c(139, 139, 34, 35), ncol=2)
> km <- spDistsN1(ll, ll[1,], longlat=T)
> sum(zapsmall(km))
[1] 110.8055
なおRのバージョンは2.10.1であり、これを緯度-経度で入力す...
> library(sp)
> ll <- matrix(c(34, 35, 139, 139), ncol=2)
> km <- spDistsN1(ll, ll[1,], longlat=T)
> sum(zapsmall(km))
[1] 0
次に東経138-139度、北緯34度の距離を出す場合(当初質問の1...
> library(sp)
> ll <- matrix(c(138, 139, 34, 34), ncol=2)
> km <- spDistsN1(ll, ll[1,], longlat=T)
> sum(zapsmall(km))
[1] 0
-- [[きむ]] &new{2011-01-11 (火) 16:32:27};
- こちらはR version 2.12.1です。上記の結果が0になるとおっ...
- 谷村先生、丁寧な回答ありがとうございます。いろいろやっ...
- お知らせ>[[RでGPS]]でspDistsN1()の引数が逆になっている...
- R version 2.10.1 (2009-12-14)winで実行しみましたが、結...
- 名無し様、当方のverでチェックいただきありがとうございま...
- spDists()やspDistsN1()のヘルプであるspDistsN1.Rdに、引...
- 谷村先生、重ねてご配慮いただき大変ありがとうございまし...
**出力の一部をクリップボードにコピーして利用したい。 [#a2...
>[[yamada]] (2011-01-07 (金) 13:46:05)~
~
表のような結果をsink(),print()でテキストファイルに出力し...
jp uk us
1 -3.030863e-02 -2.523841e-02 -4.387615e-03
2 -1.594305e-02 -1.853893e-02 -1.499784e-02
3 9.720749e-03 8.167201e-03 1.648989e-02
4 -1.138466e-02 5.133008e-03 1.188763e-03
//
- 話は簡単なのです。あなたがデータフレームを使っているな...
もし行列の場合にも同じようなことをやりたければ,print(dat...
基本は,「オンラインヘルプを読みましょう」ということです...
- ありがとうございました。Rをインストールした後、ヘルプの...
- オンラインヘルプという用語が通じなかったかも知れません...
ファイルメニューのヘルプをクリックした場合には,そのウイ...
なお,R では例えば,単に print という関数でも,関数の引数...
「そんなこと,今まで読んだどの資料にも書いてなかった」と...
ところで,あなたが本当にやりたいことはどういうことなんで...
> sink(),print()でテキストファイルに出力しています~
ということからみれば,write.table(データフレーム, ファイ...
「実際にクリップボードに格納したいのは」ということは,コ...
> このページに掲載されている情報に関する責任はすべて...
ということで。 -- [[河童の屁は,河童にあらず,屁である。]...
**read.csv で読み込んだデータの積集合をとりたい [#xdac2650]
>[[tadashi]] (2011-01-05 (水) 15:08:35)~
~
やりたいことは、1列しかないCSVファイルを2つ読み込んで、...
read.cvs で読み込むと下記のようにうまくいきません。~
CSVから、データの作り方がうまくないのだと思いますが、どの...
> a <- read.csv('temp.1', header=FALSE)
> b <- read.csv('temp.2', header=FALSE)
> a
V1
1 1
2 2
3 3
> b
V1
1 3
2 4
3 5
> intersect(a, b)
data frame with 0 columns and 0 rows
//
- intersect の引数が何であるべきか調べましょう。つまり,...
scan で入力するとすれば,もっと簡単になる。intersect(scan...
- データ形式の指定がベクトルという意味がよくわかっていま...
**パッケージVARの関数restrictの計算精度 [#qd6b56ea]
>[[松代]] (2010-12-31 (金) 14:08:35)~
~
グレンジャー因果性の検定量をrestrictで制約した残差と制約...
//
- > 教科書の計算結果(Eview)やエクセルの計算結果と大幅...
Eview や Excel の結果の方が正しいのならば,restrict の計...
restrict での計算結果が思わしくないのが,関数の使い方が不...
- 私の説明不足でした。パッケージVARの利用経験者の感想を聞...
- > パッケージVARの利用経験者の感想を聞きたかったのです~
感想なんか不要でしょう。~
必要なのは,得られる結果が正確なのかどうなのかではないで...
あなたは,R の restrict の結果が不適切(不正確)だと判定...
もし,問われるとすれば,あなたの判定の根拠が正しいかどう...
そのような状況説明も不要なほど R の resctrict がだめだと...
> EveiwやSプラスなど有料ソフトを使えばこの悩みは解決しま...
というのは,どうなんでしょうか。~
お金を払えば正確無蜷なものが得られるというのは幻想かも知...
お金を払わねばならないソフトが間違えていて,そうではない...
意思決定にああだこうだはないと思いますけどね。有償ソフト...
もっとも,あなたの今の環境は R 以外の「信頼できる」ソフト...
> 例えばパケージごとにユーザーのフォーラムがあってそこで...
そういうのがあるかどうかは私は知りませんが,おそらくはな...
要するに,話を明確にするためには,~
このようなデータを R と その他のソフトで解析した結果はこ...
漠然と問いかけされても,答えようがありませんよね。~
議論は,事実に基づいてなされるべきですよね。~
R が信頼できないなあという状況で,R を採用するのは避けた...
- パッケージ経験者の評価サイトがありました。http://cranta...
**初級Q&A アーカイブ(6)クラスター図を横向きの応用方法 ...
>[[hashi]] (2010-12-30 (木) 17:22:31)~
~
いつもお世話になっております。~
デンドログラムの回転方法ですが、青木先生著「Rによる統計解...
set.seed(123)
x <- round(matrix(rnorm(100), ncol=5), 3)
d <- dist(x)
ans <- hclust(d^2, method="ward")
pdf("cluster.pdf", height=375/72, width=500/72)
plot(ans, hang=-1)
dev.off()
hang=-1の後ろに書き加え計算すると、
"horiz"はグラフィックスパラメータではありません
とメッセージが出ます。~
//
- さてはて。例題があるのだから,それぞれの関数が何を意味...
> hc <- hclust(dist(USArrests)^2, "cen")
> par(mar = c(4,1,1,7))
> plot(as.dendrogram(hc), horiz = T)
は,ちゃんと動くのだから,
set.seed(123)
x <- round(matrix(rnorm(100), ncol=5), 3)
d <- dist(x)
ans <- hclust(d^2, method="ward")
pdf("cluster.pdf", height=375/72, width=500/72)
plot(as.dendrogram(ans), horiz=TRUE) # @@@ ここをこの...
dev.off()
ということでしょう。 -- [[河童の屁は,河童にあらず,屁で...
- 河童の屁は,河童にあらず,屁である。さん、ありがとうご...
**mvpartパッケージで情報量エントロピーを使いたい [#y8aa59...
>[[akira]] (2010-12-30 (木) 14:20:04)~
~
いつもありがとうございます.~
mvpartパッケージのrpart関数について質問です.~
ヘルプを見ると、分岐指標に"gini"と"information"を選べるよ...
[[同志社大の金先生のHP:http://mjin.doshisha.ac.jp/R/19.ht...
一方、rpartのコード(40〜63行目ぐらいと思っていますが…)...
ご存知の方、いらっしゃいませんか?~
//
- For classification splitting, the list can contain any ...
実際にやってみると,ちゃんと違いがあるようですけど? -- [...
> library(rpart)
# @@@ information を使用
> fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyp...
+ parms=list(split='information'))
> fit2 <- rpart(Kyphosis ~ Age + Number + Start, data=ky...
+ parms=list(split='gini'))
>
> library(rpart)
> fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyp...
+ parms=list(split='information'))
> fit
n= 81
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 81 17 absent (0.79012346 0.20987654)
2) Start>=12.5 46 2 absent (0.95652174 0.04347826) *
3) Start< 12.5 35 15 absent (0.57142857 0.42857143)
6) Age< 34.5 10 1 absent (0.90000000 0.10000000) *
7) Age>=34.5 25 11 present (0.44000000 0.56000000)
14) Number< 4.5 12 5 absent (0.58333333 0.4166666...
15) Number>=4.5 13 4 present (0.30769231 0.692307...
# @@@ gini を使用(デフォルト)
> fit2 <- rpart(Kyphosis ~ Age + Number + Start, data=ky...
+ parms=list(split='gini'))
> fit2
n= 81
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 81 17 absent (0.7901235 0.2098765)
2) Start>=8.5 62 6 absent (0.9032258 0.0967742)
4) Start>=14.5 29 0 absent (1.0000000 0.0000000) *
5) Start< 14.5 33 6 absent (0.8181818 0.1818182)
10) Age< 55 12 0 absent (1.0000000 0.0000000) *
11) Age>=55 21 6 absent (0.7142857 0.2857143)
22) Age>=111 14 2 absent (0.8571429 0.1428571) *
23) Age< 111 7 3 present (0.4285714 0.5714286) *
3) Start< 8.5 19 8 present (0.4210526 0.5789474) *
- なるほど、ありがとうございます。 -- [[akira]] &new{2010...
**$ operator [#n637c305]
>[[松代]] (2010-12-28 (火) 15:54:34)~
~
パッケージVARSを使うために解説書どおりに以下のコマンドを...
> library(vars)
> data(Canada)
> layout(matrix(1:4, nrow = 2, ncol = 2))
> plot.ts(Canada$e, main = "Employment", ylab = "", xlab...
//
- Canada は "mts", "ts" クラスのオブジェクトなので,$ は...
- うまくいきました。ありがというございました。私が参考に...
- その文書中に Canada$e のような用例は見つかりませんが? ...
- あるけど -- [[通りすがり]] &new{2010-12-29 (水) 09:50:4...
- 大急ぎで通り過ぎたのかぶっきらぼうなこと(^_^;) 「通り...
なるほど,「その文書」には確かに書いてありますね。しかし...
http://rss.acs.unt.edu/... は公式というよりは,個人が管理...
現行の R (R 2.12.1) で,library(help=vars) をやると,その...
これ以上の情報はディレクトリ
'/Library/Frameworks/R.framework/Versions/2.12/Resources...
にある以下のビニエット中にあります:
vars: VAR, SVAR and SVEC models (source, pdf)
いずれにせよ「現行の文書中にはない」。私は,新しい文書を...
公式のものであっても,パッケージの機能(関数)の更新があ...
- 「河童の屁は,河童にあらず,屁である」さん、ありがとう...
**Windows7+R64 2.12.1でパッケージadaptをインストールでき...
>[[松代]] (2010-12-25 (土) 00:07:03)~
~
Windows7+R64 2.12.1でパッケージadaptをインストールできま...
> install.packages("adapt")~
パッケージを ‘C:\Users\fujimot\Documents/R/win-library/2...
(‘lib’ が指定されていないので)
--- このセッションで使うために、CRANのミラーサイトを選ん...
警告メッセージ:
In getDependencies(pkgs, dependencies, available, lib) :
package ‘adapt’ is not available
//
- CRANには、Package ‘adapt’ was removed from the CRAN rep...
- 知りませんでした。「データ解析Rの基本技」を勉強中で本通...
- 多変量関数の積分のためのパッケージ「adapt」が最近アップ...
install.packages("cubature",dep=T) # インストール
library(cubature) # パッケージの呼び出し
?adaptIntegrate # 関数のヘルプ
f <- function(x) cos(x) # 1変数関数の場合
adaptIntegrate(f, 0, pi/2)
g <- function(x) { # 2変数関数の場合
exp(-(x[1]^2+x[2]^2)/2)/(2*pi)
}
adaptIntegrate(g, c(-3, -3), c(3, 3))
**tapply関数について [#p72917e8]
>[[ランゲル・ハンス]] (2010-12-21 (火) 09:00:38)~
~
いつも掲示板を参考にさせていただいております。~
以前も同じような質問をさせていただいたので、大変恐縮です。~
NとMを10区間に区切って、その区間内に入るdの合計と平均を求...
下記の例(results1,results2)ではいくつかNAが出ます。NAを0...
最終的には区間にすべて色の入るlevelplotを作図したいと考え...
N <- c(0, 1, 3, 7, 12, 20, 30, 45, 50, 81)
M <- c(10, 20, 40, 60, 65, 75, 90, 95, 98, 100)
d <- runif(10, 0, 10)
data <- data.frame(cbind(N, M, d))
by1 <- cut(data$N, seq(0, 100, 10), right=TRUE, include....
by2 <- cut(data$M, seq(0, 100, 10), right=TRUE, include....
results1 <- cbind(tapply(data$d, list(by1, by2), sum))
results2 <- cbind(tapply(data$d, list(by1, by2), mean))
results1
results2
library(lattice)
levelplot(results1)
levelplot(results2)
どうぞよろしくお願いいたします。~
//
- tapply の後で,results1[is.na(results1)] <- 0 とすれば...
データの中に NA があるために sum や mean の結果が NA にな...
なお,tapply の結果を cbind する必要はありません。 -- [[...
- 河童さま 早速コメントありがとうございました。 -- [[ラ...
- 世の中には親切な人がいるもんだ.rユーザーには性格がい...
**特定の値が連続して出現する回数の最大値を計算 [#xed8d9eb]
>[[なつ]] (2010-12-20 (月) 22:13:28)~
~
Rを使って,特定の値が連続して出現する回数の最大値を計算す...
例えば,特定の値=1としまして,
a <- c(0, 1, 1, 1, 0, 0, 1, 1)
b <- c(1, 1, 1, 1, 1, 0, 1, 0)
という2つのオブジェクトがあるとします。~
この場合,aからは3,bからは5という値を計算したいというこ...
~
何か良い方法がありましたら,教えて頂ければ幸いです。~
初歩的な質問で申し訳ありませんが,よろしくお願いいたしま...
//
- 汚すぎ? -- [[きよしこ]] &new{2010-12-20 (月) 22:58:01};
max(diff(c(0, which(b != 1), length(b)+1))-1)
- あるいはこういうの。 do.call(function(lengths, values) ...
- こっちの方が分かりやすいかな。 max(subset(as.data.frame...
- 皆さま,さっそくありがとうございます。やっぱりRって便利...
- 度々すみません。ちなみに,ある値以上の値が連続して出現...
- rle を使ったやり方はよくわかりませんが,一番最初のごり...
- x が実数値ベクトルとすると x >= 0.5 は TRUE, FALSE (つ...
- これまたさっそくありがとうございます。>きよしこの様,...
**少し高度なヒストグラム(か散布図) [#e04ea5cf]
>[[yos]] (2010-12-19 (日) 20:39:01)~
~
よろしくおねがいします.~
~
1分おきで1日(0~1440分)に計測された,ある値があります.~
1列目が,時間(0,1,2,...,1440)~
2列目が,その時間における値(10, 40, ..., 50)~
3列目が,グループ(A, B, C)~
これを,~
X軸を,例えば1時間おきの24分割~
Y軸を,A, B, Cの3分割~
で,値の平均値をプロットしたいのですが,色々調べてもどう...
ご教授いただけないでしょうか~
//
- データは? x軸を時間(分刻み), y軸を値,グループは...
- tapply を使い,結果を matplot で描画する。グループの区...
set.seed(123)
d <- data.frame(time=0:1440, value=rnorm(1441), group=sa...
d$time2 <- d$time%/%60
d$time2[d$time2 == 24] <- 23
d$time2 <- factor(d$time2)
matplot(tapply(d$value, list(d$time2, d$group), mean), t...
&ref(matplot.png);
- 大変ありがとうございます。言葉足らずで大変申し訳ありま...
- それでは,matplot の代わりに,image を使えばよいかな。...
意図はともかく,見づらいグラフ。上のような折れ線の方が良...
もっとも,作り付けの関数は,どこかに不満が出るものなので...
tapply(d$value, list(d$time2, d$group), mean) の部分が主...
image(x=0:23, y=1:3, tapply(d$value, list(d$time2, d$gro...
axis(2, at=1:3, labels=LETTERS[1:3], pos=-0.5)
&ref(image.png);
- ご対応いただき大変ありがとうございます.イメージ通りの...
- 良い方法が見つかったら,報告してください。
**自由度調整済み決定相関係数の求め方 [#h8d92983]
>[[Kai]] (2010-12-12 (日) 15:31:30)~
~
こんにちは。~
lm()でデータAの一次回帰式を求め、predict()でデータBを回帰...
A_res <- lm(formula=Volume ~ Girth, data=trees) # データ...
B <- trees+rnorm(dim(trees)[1]*dim(trees)[2]) # データB...
B_res <- predict(A_res, B$Girth) # データBの回帰
B_resの回帰結果から自由度調整済み決定相関係数を求めたいの...
ヘルプファイルを読む限りではse.fitという引数が関係ありそ...
~
Rは2.11.1, OSはMac 10.5.8です。宜しくお願いします。~
//
- > B_resの回帰結果から自由度調整済み決定相関係数を求め...
そういうものは,自由度調整済み決定相関係数(「自由度調整...
- ご指摘の通り「自由度調整済み決定係数」の間違いでした。...
- 名前はないと思いますけど。そのようなものを一般的に使う...
しかし,それが何を意味するか,他の人の理解を得られるもの...
> trees <- data.frame(Volume=c(56, 54, 33, 58, 49), Girt...
> A_res <- lm(formula=Volume ~ Girth, data=trees)
> B <- trees+rnorm(dim(trees)[1]*dim(trees)[2])
> B_res <- predict(A_res, newdata=B) # 予測値
> Se <- sum((B$Volume-B_res)^2) # 残差平方和
> n <- nrow(B) # データ数
> St <- var(B$Volume)*(n-1) # 全平方和
> MSe <- Se/(n-2) # 残差の平均平方
> MSt <- St/(n-1) # 全体の平均平方(不偏分散)
> (CorrectedR2 <- 1-MSe/MSt) # 自由度調整済み決定係数と...
[1] 0.3946343
- 計算方法ありがとうございました。一般的には使われないも...
**igraphのインストールエラー [#ped42163]
>[[kouka]] (2010-12-11 (土) 22:07:24)~
~
R全くの初心者です。igraphのパッケージは下記のようにインス...
> utils:::menuInstallLocal()
パッケージ 'igraph' は無事に開封され、MD5 サムもチェック...
パッケージを読み込む際に、
> library(igraph)
エラー: パッケージ 'igraph' は 'arch=i386' に対してイ...
と表示されます。原因を教えていただけませんか?~
//
- あなたの環境がわからないのですけど。~
あなたの環境ではないパッケージをインストールしたとか?~
あなたの環境(sessionInfo() の結果)と,どのようにインス...
- Rのバージョンをあげると解決しませんか?[[このヘルプ:http...
**rep.aovとSPSS [#w9101bee]
>[[YK]] (2010-12-11 (土) 19:53:30)~
~
はじめまして。~
被験者間因子と被験者内因子を含む分散分析に関する質問です。~
先日、中級Q&Aに投稿した内容ですが、初級Q&Aが適切ではない...
Rのaov、nlmeパッケージのlme、carパッケージのAnovaと岡田先...
下記にサンプルを示します。~
P値はfactor1, factor2, timeの順に0.044, 0.441, 0.017とな...
ダミーの結果を加えて被験者内因子の水準を3にしてみても結...
他のサンプルデータでも結果が一致するときとしないときがあ...
SPSSはType IIIで計算していますが、R側でtype IIIを指定して...
原因についてどなたかご教示いただけましたら幸いです。
ID <- factor(rep(c(1:32),2))
factor1 <- factor(c(0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1,
1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1,
0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1,
0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0))
factor2 <- factor(c(0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1,
0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1,
0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1,
0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0))
time <- factor(c(rep(1,32), rep(2,32)))
result <- c(102.56, 101.80, 123.72, 74.16, 34.12,
61.52, 54.08, 115.08, 58.96, 60.24, 111.68, 122.20,
45.04, 104.84, 121.48, 125.20, 45.48, 217.00, 39.40,
157.48, 119.96, 65.80, 4.44, 39.40, 65.80, 90.20,
45.48, 117.72, 83.04, 156.40, 42.72, 110.92, 135.52,
22.60, 129.08, 127.76, 149.12, 69.92, 73.24, 97.12,
114.92, 54.56, 170.08, 71.60, 179.96, 57.08, 199.88,
126.48, 59.56, 120.40, 53.56, 127.12, 66.48, 75.24,
268.64, 90.88, 102.48, 147.84, 116.84, 84.40, 147.84,
138.76, 122.96, 120.04)
df <- data.frame(ID, factor1, factor2, time, result)
rep.aov(result ~ I(time) + B(factor1, factor2) + S(ID), ...
//
- セルフレスです。解決しました -- [[YK]] &new{2010-12-13 ...
SPSSと結果が一致しなかった件ですが、
contrasts(factor1) <- "contr.Sum"
として因子の対比を零和対比にすることによって
carのAnova(type="III")でSPSSと一致するようになりました。
下記のページが参考になりました。
http://myowelt.blogspot.com/2008/05/obtaining-same-anova-...
投稿する前にもっとしっかりと調べておくべきでした。
お騒がせして申し訳ありません。
**ネットワーク(sna)のグラフ描画(辺ごとの太さの調整)につ...
>[[net]] (2010-12-10 (金) 19:24:00)~
~
R初心者です.~
ネットワーク分析をして,ネットワーク図を描くときに,辺の...
たとえば,重み付きグラフの隣接行列(たとえばwg)でグラフを...
ちなみに,wgは作業ディレクトリにあるcsvファイルで,~
wg<-as.matrix(read.csv("XXXXX(ファイル名)".csv))~
で既に定義してあるとします.~
私は,~
gplot(wg,~
edge.lwd = wg)~
として,グラフを描こうとしたら,エラーで「使われていない...
~
具体的なスクリプトを教えていただけたら幸いです.~
//
- 「具体的なスクリプトを教えていただけたら幸いです」とい...
read.csv("XXXXX(ファイル名)".csv) なんていわれても,"XXX...
コメントを求めようと思うなら,現象を再現できる適切な規模...
あなたの遭遇した状況を,ああでもあるか,こうでもあるかと...
例えば,gplot についても,どのパッケージに入っているのか...
- snaパッケージのgplotのコードとしては間違っていません。r...
- 土曜日にコメント頂いた方へ
ありがとうございました.
もう一度試してみたら,以下のスクリプトでできました.heade...
質問をお送りした時のスクリプトと変更していないと思います...
(もちろん,スペースなどをチェックして何回かやり直したの...
library(sna)
wg <-as.matrix(read.csv("test.csv",header=TRUE))
gplot(wg,
edge.lwd = wg)
test.csvのなかみ
A,B,C,D,E,F
0,8,0,0,0,0
0,0,0,1,0,1
0,6,0,0,0,0
0,0,0,0,0,0
0,0,0,0,0,2
1,0,0,0,2,0
**列数が不揃いなtxtファイルを読み込みたい [#p4262ffd]
>[[しょう]] (2010-12-10 (金) 02:48:02)~
~
スペース区切りのテキストファイル(数百万行*9列)をRに読み...
~
ただ、元データの8列目が「備考」欄のため、scan(file="xxx.t...
~
read.tableを使うと「'289' 行目には,8 個の要素がありませ...
~
read.delim("xxx.txt")を使うと、空白の備考欄に「NA」を入れ...
~
read.delimで列数を設定できればよいのですが、可能でしょう...
~
R version=2.9.2, OS=Vista~
//
- Version 2.12.0 では,read.delim でちゃんと読めるようだ...
最新バージョンで確認してから質問すべきではないでしょうか?~
また,read.table でも,fill=TRUE にすると read.delim と同...
「こんなことができないのかな?」と思ったら,もう一度オン...
ファイル
1 2 3 4 5 6 7 8
11 12 13 14 15 16 17 18
21 22 23 24 25 26 27 28 comment
31 32 33 34 35 36 37 38
実行結果
> read.delim("test.txt", header=FALSE, sep=" ")
V1 V2 V3 V4 V5 V6 V7 V8 V9
1 1 2 3 4 5 6 7 8
2 11 12 13 14 15 16 17 18
3 21 22 23 24 25 26 27 28 comment
4 31 32 33 34 35 36 37 38
- ありがとうございます。初投稿で、要領を得ず申し訳ありま...
早速最新versionをインストール致しました。~
備考が6行目以降に初めて現れると、8列の箱が出来上がってし...
9列のheader行を追加するしかなさそうでしょうか? -- [[しょ...
#ファイル
1 2 3 4 5 6 7 8
11 12 13 14 15 16 17 18
21 22 23 24 25 26 27 28
31 32 33 34 35 36 37 38
41 42 43 44 45 46 47 48
51 52 53 54 55 56 57 comment 58
61 62 63 64 65 66 67 comment 68
71 72 73 74 75 76 77 78
#実行結果
read.delim(file="test.txt",sep="",header=F)
V1 V2 V3 V4 V5 V6 V7 V8
1 1 2 3 4 5 6 7 8
2 11 12 13 14 15 16 17 18
3 21 22 23 24 25 26 27 28
4 31 32 33 34 35 36 37 38
5 41 42 43 44 45 46 47 48
6 51 52 53 54 55 56 57 comment
7 58 NA NA NA NA NA NA
8 61 62 63 64 65 66 67 comment
9 68 NA NA NA NA NA NA
10 71 72 73 74 75 76 77 78
- なるほど,備考欄は途中にあると。確かに,最初の質問にも...
> 9列のheader行を追加するしかなさそうでしょうか?
追加しても,この場合
4 31 32 33 34 35 36 37 38 NA
5 41 42 43 44 45 46 47 48 NA
6 51 52 53 54 55 56 57 comment 58
7 61 62 63 64 65 66 67 comment 68
8 71 72 73 74 75 76 77 78 NA
みたいになるだけでしょう。その後で8列と9列をちゃんと解釈...
> matrixを使って行列化する
とありますが,備考欄以外は数値データですか?備考欄は文字...
結局の所は,readLines で一行ずつ読んで,備考欄を自分で処...
txt <- readLines("test.txt")
n <- length(txt)
dat <- matrix(0, n, 9)
for (i in 1:n) {
str <- unlist(strsplit(txt[i], " "))
if (length(str) == 8) {
str[8:9] <- c("", str[8])
}
dat[i,] <- str
}
dat
実行結果
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] "1" "2" "3" "4" "5" "6" "7" "" "8"
[2,] "11" "12" "13" "14" "15" "16" "17" "" "18"
[3,] "21" "22" "23" "24" "25" "26" "27" "" "28"
[4,] "31" "32" "33" "34" "35" "36" "37" "" "38"
[5,] "41" "42" "43" "44" "45" "46" "47" "" "48"
[6,] "51" "52" "53" "54" "55" "56" "57" "comment" "58"
[7,] "61" "62" "63" "64" "65" "66" "67" "comment" "68"
[8,] "71" "72" "73" "74" "75" "76" "77" "" "78"
- >追加しても,この場合…みたいになるだけでしょう。→ご指摘...
**R commanderのセットアップ [#p6447bd1]
>[[まさ]] (2010-12-08 (水) 17:45:28)~
~
R commanderを動かそうとしている初心者です。MacOSX10.6、R...
> install.packages("Rcmdr", dependencies=TRUE)~
の後に、~
> library(Rcmdr)~
と入力すると以下のメッセージが来ました。~
~
要求されたパッケージ tcltk をロード中です ~
Tcl/Tkインターフェースのロード中~
>~
~
となり、それから特に何も起こりません。 この後少し打ち込も...
//
- > install.packages("Rcmdr", dependencies=TRUE) で Rcmd...
install.packages(....) を入力した後,
also installing the dependencies ‘aplpack’, ‘relimp’
URL 'http://cran.md.tsukuba.ac.jp/bin/macosx/leopard/co...
Content type 'application/x-gzip' length 2077295 bytes (...
開かれた URL
==================================================
downloaded 2.0 Mb
URL 'http://cran.md.tsukuba.ac.jp/bin/macosx/leopard/co...
Content type 'application/x-gzip' length 37864 bytes (36...
開かれた URL
==================================================
downloaded 36 Kb
URL 'http://cran.md.tsukuba.ac.jp/bin/macosx/leopard/co...
Content type 'application/x-gzip' length 2647612 bytes (...
開かれた URL
==================================================
downloaded 2.5 Mb
ダウンロードされたパッケージは、以下にあります
/var/folders/mL/..../downloaded_packages
のようなログがコンソールに出ましたか?出ていないなら,イ...
他のパッケージをインストールしたことはありますか?~
インターネット環境は,プロキシ・サーバを通して外部とつな...
プロキシ・サーバを介しているならば,それなりの準備をしな...
かつても,「[[Rcmdrのダウンロード:http://www.okada.jp.org...
その他にも,上の「[[単語検索:http://www.okada.jp.org/RWik...
- 御返事有り難うございます。install...の入力後のログは同...
- > library(Rcmdr)入力後「Tcl/Tkインターフェースのロード...
その後は,
要求されたパッケージ tcltk をロード中です
Tcl/Tkインターフェースのロード中 終了済
要求されたパッケージ car をロード中です
要求されたパッケージ MASS をロード中です
要求されたパッケージ nnet をロード中です
要求されたパッケージ survival をロード中です
要求されたパッケージ splines をロード中です
Rcmdrのバージョン 1.6-2
次のパッケージを付け加えます: 'Rcmdr'
The following object(s) are masked _by_ '.GlobalEnv':
partial.cor
The following object(s) are masked from 'package:tcltk':
tclvalue
となるはずなので,やはりどこかおかしいのでしょう。なお,...
うまくいかない場合について,「うまくいかない」という筋道...
なお,言うまでもないですが,もしうまくいったら,「どのよ...
なお,Rcmdr には依存しないようにすることをお勧めしたいと...
- Tcl/Tkのダウンロードで解決しました。Rパッケージマネージ...
- 問題解決のための,素晴らしいスレッドになりましたね。あ...
**plotの使い方 [#kd9af09b]
>[[質問君]] (2010-11-27 (土) 18:29:37)~
~
plotの使いかたで質問です。
x <- c(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
y <- c(5, 6, 7, 1, 3, 5, 6, 7, 1, 3)
これらのデータで、x[1]の時、y[1]をプロットし、x軸にその...
よろしくお願いします。~
//
- 今日はみんな,立川あたりへ出払っているのかな?
plot(x, y, xaxt="n")
axis(1, at=x)
とでもするかな?グラフの横幅はある程度大きくしないと総て...
なお,x は この場合 x <- 1:10*10 とか x <- seq(10, 100, b...
- 有難う御座います。参考になります。 -- [[質問君]] &new{2...
**aggregate関数について [#z05ac7ea]
>[[ランゲル・ハンス]] (2010-11-26 (金) 15:14:51)~
~
aggregate関数について質問させていただきます。~
~
以下のようなデータフレーム(data)があったとき、cut 関数で ...
どうぞよろしくお願いいたします。
N <- c(0, 1, 3, 7, 12, 20, 30, 35, 50, 91)
d <- runif(10, 0, 10)
data <- data.frame(cbind(N, d))
by1 <- cut(data$N, seq(0, 100, 10), right=TRUE, include....
agg <- aggregate(data$d, by=list(by1), FUN="sum")
agg
//
- 「NA がある場合」ではなく,「該当区間にデータがない場合...
その他にも色々なやり方があるでしょう。 -- [[河童の屁は,...
> cbind(sapply(levels(by1), function(x) sum(d[by1 == x])))
[,1]
[0,10] 21.574116
(10,20] 8.055110
(20,30] 3.415935
(30,40] 2.436897
(40,50] 9.260387
(50,60] 0.000000
(60,70] 0.000000
(70,80] 0.000000
(80,90] 0.000000
(90,100] 5.495600
> cbind(sapply(split(d, by1), function(y) sum(y))) # な...
- 河童さま、早速コメントありがとうございました。 -- [[ラ...
- すみません、もう一点追加で質問させていただきます。私はs...
- データの個数は,sapply を使うまでもなく,table(by1)だけ...
> table(by1)
by1
[0,10] (10,20] (20,30] (30,40] (40,50] (50,60] (...
4 2 1 1 1 0 ...
> sapply(split(d, by1), function(x) length(x)) # これで...
[0,10] (10,20] (20,30] (30,40] (40,50] (50,60] (...
4 2 1 1 1 0 ...
- 河童さま、ありがとうございました。感謝・感謝です。明日...
**改行、空行 [#xf5d6c1a]
>[[超初心者]] (2010-11-20 (土) 15:53:12)~
~
空行の実行方法とプロンプト上で改行を行なう方法を教えてく...
マニュアル等いろいろ探したんですが、全くわかりません。~
初歩的すぎて申し訳ございませんが、よろしくお願いします。~
//
- 「空行の実行」とは何をどうすることなんでしょうか。改行...
- RでSEM入門(http://m884.jp/Osaka.R/_media/osaka.r_n...
- まだるっこしいですね。「エラーが出てうまくいきませんで...
- 「RでSEM入門 P16 をやったけどうまくいかなかった」な...
まずね,プロンプトの後に,sem パッケージつかうよというこ...
> library(sem)
次に,read.moments 関数,入力しますね。
> cor.1 <- read.moments(diag=FALSE, names=c("年齢", "個...
+ "教育年数", "職業威信"))
そうすると,コンソールには「1:」というプロンプトが出ます...
1: 0.12107847
2: -0.28075478 0.2329769
4: -0.04963399 0.3954726 0.2921118
を入力しますね。この入力が終わるとプロンプトは
7:
になります。このあと,何も入力せずに,リターンキーを押す...
そうすると,コンソールには
Read 6 items
と表示され,入力が完了した事になります。~
cor.1
を入力すれば,cor.1 の内容が表示されるでしょう。 -- [[河...
- ∖n じゃない。バックスラッシュ \ とn -- [[本筋では...
- お手数おかけしてすみませんでした。挑戦してみます。有り...
**日本語を含む固定長ファイルの読み込み [#u393a14e]
>[[困り果ててます]] (2010-11-19 (金) 18:48:40)~
~
日本語を含む固定長ファイルを読み込みたいのですが,うまく...
123あ 456
321いう789
のような内容の test.txt というファイルがあり,1件目のデー...
read.fwf("test.txt", width=c(3, 4, 3))
だと意図したように読めません。
readChar("test.txt", c(3, 4, 3), useByte=TRUE)
としてみたのですが,1行目しか読めません。~
解決法をご存知の方がいらっしゃいましたら是非 ご教示くださ...
よろしくお願いします。~
//
- あなたの環境がわからないので何とも言えません。上の方に...
「あ」の後に,半角空白が2個あるのですけど,本来そこには全...
> read.fwf("test.txt", width=c(3, 2, 3))
V1 V2 V3
1 123 あ 456
2 321 いう 789
Macintosh 版の R では,全角でも半角でも,「一文字は一文字...
Windows でも,これとは違った規則であるけど,規則に従って...
と,書いて,思い出しました。「R による統計解析」の 22 頁...
lc <- Sys.getlocale("LC_CTYPE")
Sys.setLocale("LC_CTYPE", "C")
read.fwf("test.txt", width=c(3, 4, 3))
Sys.setLocale("LC_CTYPE", lc)
とすればよいのかな?前後に余分な面倒な指定が必要なのか?W...
- ご返事,ありがとうございます。 sessionInfo の結果は
> sessionInfo()
R version 2.10.1 (2009-12-14)
i386-pc-mingw32
locale:
[1] LC_COLLATE=Japanese_Japan.932 LC_CTYPE=Japanese_Jap...
[3] LC_MONETARY=Japanese_Japan.932 LC_NUMERIC=C ...
[5] LC_TIME=Japanese_Japan.932
attached base packages:
[1] stats graphics grDevices utils datasets me...
です。もとのデータを編集するのは極力避けたいので,半角の...
他の環境のことはわかりませんが,Windowsでは読取幅を指定す...
- > Windowsでは読取幅を指定すると全角半角を問わず1文字単...
ああ、ごめんね。Sys.setLocale じゃなくて、Sys.setlocale ...
> lc <- Sys.getlocale("LC_CTYPE")
> Sys.setlocale("LC_CTYPE", "C")
[1] "C"
> a <- read.fwf("test.txt", width=c(3, 4, 3))
> Sys.setlocale("LC_CTYPE", lc)
[1] "Japanese_Japan.932"
> a
V1 V2 V3
1 123 あ 456
2 321 いう 789
のように、ちゃんとよめたけどなあ。 -- [[河童の屁は,河童...
- 丁寧にご教示いただき,ありがとうございます。試してみた...
> lc <- Sys.getlocale("LC_CTYPE")
> Sys.setlocale("LC_CTYPE", "C")
[1] "C"
> test <- read.fwf("test.txt", width=c(3, 4, 3))
> Sys.setlocale("LC_CTYPE", lc)
[1] "Japanese_Japan.932"
> test
V1 V2 V3
1 123 あ 4 56
2 321 いう78 9
やはり文字単位でしか読み込めませんでした... -- [[困り果...
- さて,困りましたね。私はうまく読めたといい,あなたは読...
- 何度もありがとうございます。ファイル(test.txt)をアップ...
con <- file(description="test.txt", open="r", encoding="...
lc <- Sys.getlocale("LC_CTYPE")
Sys.setlocale("LC_CTYPE", "C")
test <- read.fwf(con, width=c(3, 4, 3))
Sys.setlocale("LC_CTYPE", lc)
test
close(con)
> test
V1 V2 V3
1 123 あ 4 56
2 321 いう78 9
のように,文字コードを指定して読み込もうとしてみたのです...
- 何でconをfileで設定しなければならないのかなど,疑問だら...
なぜにして、「文字コードは shift-jisです」とおっしゃるの...
あなたがアップロードしたファイルに対して、プログラムを何...
私のハンドルが微妙に違うのは、なれないWindows環境で試して...
- わざわざWindows環境で試してくださったんですね。ここまで...
- 他のPCで試してみてもうまくいかなかったのですが,Sys.set...
> lc <- Sys.getlocale("LC_CTYPE")
> Sys.setlocale("LC_CTYPE", "E")
[1] "English_United States.1252"
> test <- read.fwf("test.txt", widths=c(3, 4, 3))
> Sys.setlocale("LC_CTYPE", lc)
[1] "Japanese_Japan.932"
> test
V1 V2 V3
1 123 あ 456
2 321 いう 789
ありがとうございました。 -- [[困り果ててます]] &new{2010-...
- これを機会にWindows上に仮想PC (VMPlayerなど)に無償OS(Li...
- な,なるほど... 検討してみます。ご助言,ありがとうござ...
**エクセルとの乱数の比較について [#p2adbf56]
>[[質問君]] (2010-11-18 (木) 22:04:57)~
~
エクセルでMM法を乱数で実行してるのですが、Rの乱数の方が...
探しても見当たりませんでした。もし、ご存知の方がいらっし...
//
- エクセルの乱数と比べられるとは,R も心外であろう。~
[[良い乱数・悪い乱数:http://www001.upp.so-net.ne.jp/isaku...
そのほかにも,「エクセル 乱数 R メルセンヌ ツイスタ」をキ...
R の乱数については,オンラインヘルプを探したらすぐ見つか...
- 参考になりました。有難う御座います。 -- [[質問君]] &new...
**パッケージ ltm の grm 関数の出力結果の読み方 [#z521c27a]
>[[NT]] (2010-11-17 (水) 20:14:57)~
~
3 段階評価 (0, 1, 2) の尺度の項目母数を grm 関数によって...
出力結果の二行のみ示すと以下の通りとなります。
Extrmt1 Extrmt2 Dscrmn
Item1 -1.719 -0.126 1.553
ここで Extrmt1 とは評価点 0 と 1 の項目曲線が交わる地点の...
ご教示願います。~
//
- Extrmt1と2は反応確率が0.5となるθ値でした -- [[NT?]] &n...
**ある座標と最も近い座標を特定する際の高速化の方法 [#x1c7...
>[[Saito]] (2010-11-17 (水) 01:37:43)~
~
いつもお世話になっております。~
この手の話は既出かと思い検索しましたが、見つけることが出...
~
ある座標セットaを持っています。この座標セットには、座標と...
> ###座標とそれに付属する価###
> a <- data.frame(
+ expand.grid(Long=seq(11, 13),
+ Lat=seq(20, 23)),
+ value=seq(1, 12)
+ )
> ###マッチさせる数###
> num <- 1000
>
> ###座標しか分かっていない###
> b <- data.frame(long=runif(num, 11, 13),
+ lat=runif(num, 20, 23)
+ )
> head(b)
long lat
1 12.00220 21.48183
2 11.14583 21.13535
3 12.31510 20.28334
4 11.54138 21.18872
5 11.66167 20.76173
6 12.52289 21.27551
> ###全ての組み合わせから最近接距離を持つ座標を特定###
> dis <- NULL
> for(i in 1 : nrow(b)) {
+ dis <- sqrt((b[i, 1] - a[, 1])^2 + (b[i, 2] - a[, 2])^2)
+ b[i, 3] <- a[which(dis==min(dis))[1], 3] #i番目のbが...
+ }
> head(b)
long lat V3
1 12.00220 21.48183 5
2 11.14583 21.13535 4
3 12.31510 20.28334 2
4 11.54138 21.18872 5
5 11.66167 20.76173 5
6 12.52289 21.27551 6
~
しかし、実際にはaもbも超巨大で、この方法だとものすごく時...
//
- 例えば spatstatパッケージのnncross関数はいかが。 -- [[...
- classパッケージのknn関数とか。 -- [[bob3]] &new{2010-11...
- ご助言ありがとうございました。無事出来ました。下記にnnc...
> a <- data.frame(
+ expand.grid(Long=seq(slong, elong),
+ Lat=seq(slat, elat)),
+ value=seq(1, elong*elat)
+ )
> b <- data.frame(long=runif(num, slong, elong),
+ lat=runif(num, slat, elat)
+ )
>
> dis <- NULL
> pp_a <- ppp(x=a[, 1], y=a[, 2], c(slong, elong), c(sla...
> pp_b <- ppp(x=b[, 1], y=b[, 2], c(slong, elong), c(sla...
>
> system.time(
+ for(i in 1 : nrow(b)) {
+ dis <- sqrt((b[i, 1] - a[, 1])^2 + (b[i, 2] - a[, 2])...
+ b[i, 3] <- a[which(dis==min(dis))[1], 3] #i番目のbが...
+ }
+ )
user system elapsed
17.19 0.00 17.20
>
> system.time(
+ b[, 4] <- a[nncross(pp_b, pp_a)$which, 3]
+ )
user system elapsed
0.01 0.00 0.02
>
> head(b)
long lat V3 V4
1 54.32715 76.365028 7554 7554
2 90.84222 7.004393 691 691
3 88.88978 93.650574 9389 9389
4 61.72731 8.535613 862 862
5 73.77037 6.405291 574 574
6 95.42776 92.221599 9195 9195
**大量の従属変数について共分散分析を行う方法について [#w7...
>[[カワウソ]] (2010-11-15 (月) 19:11:55)~
~
はじめまして。~
n個の従属変数(y1,y2,…,yn)と一つの独立変数xに関して,if構...
lm(y1 ~ x + g)
lm(y2 ~ x + g)
・
・
・
lm(yn ~ x + g)
//
- データはデータフレーム(または行列)に入っているのでし...
そんなことはよもやアルマイとは思いますが,従属変数が別々...
- 試しにirisを使ってやってみたのですが,どうやって結果を...
> iris.ancova <- for (i in 2:4) lm(iris[,i]~iris[,1] + i...
> summary(iris.ancova)
Length Class Mode
0 NULL NULL
> iris.ancova <- for (i in 2:4) summary(lm(iris[,i]~iris...
> iris.ancova
NULL
- summary は それぞれの lm 関数の引用ごとにやらないといけ...
for (i in 2:4) print(summary(lm(iris[,i]~iris[,1] + iris...
- ありがとうございます。とても勉強になりました。 -- [[カ...
**データセットの削除方法 [#w5122d67]
>[[ダルビ]] (2010-11-10 (水) 21:24:20)~
~
初めまして。~
Rコマンダーで特定のデータセットを削除するにはどうすればよ...
いろいろなデータセットができてしまって困っています。~
お手数ですが、よろしくお願います。~
//
- rm(データフレーム名)でいいと思います。[[ワークスペース...
**kmeans と pamのクラスタリング結果について [#ba86dbfb]
>[[Jam]] (2010-11-08 (月) 17:07:02)~
~
初めまして。~
clusterライブラリで利用できるk-meansとpamの挙動について質...
~
2次元のxy座標で示せるデータをk-meansとpamでクラスタリン...
私の解釈として、どちらの手法も初期のランダムサンプルに結...
クラスタリング結果が同じというのは、plotした図、result$ce...
~
これはどういうことなのでしょうか?pamのランダムサンプルは...
~
検証プログラム。
library(cluster)
# (x, y)形式のデータを読み込む
data <- read.table(var.in_file, header=F, sep="\t")
################
# pam clustering #
################
data.clust <- pam(data, 10)
data.clust$medoids
################
# k-means clustering #
################
data.clust <- kmeans(data, 10)
data.clust$centers
//
- medoids 引数で,むちゃくちゃな初期値を指定してもちゃん...
- 回答ありがとうございます。ロバストであることは知ってい...
- 「むちゃくちゃな初期値を指定してもちゃんといつも同じ(...
- 初期ランダムサンプル、pamでいうとmedoidですがこれにあま...
- > pamでいうとmedoidですがこれにあまり依存せず同じ解へ...
私も,想像だけで言っているわけではなく,最初に書いたよう...
kmeans の動態が異常すぎるだけです。毎回違った答えが出る方...
- kmeansの場合、最初に重心要素をランダムで決めるわけです...
- 追記です。あくまで現在利用しているデータは2次元座標で...
- > 私の解釈ではどこか見落としているのでしょうか。~
お互いの意見が全くすれ違ってますね。見落としているんじゃ...
「クラスタリング結果に正解はありません」そんなことはわか...
- kmeansの場合は確かにランダムに初期値を決めていたと思い...
**LOESS平滑化曲線と信頼区間 [#ua0a1ce2]
>[[MKI]] (2010-11-06 (土) 05:26:32)~
~
散布図にLOESS()で平滑化曲線を加えたあと、その信頼区間を合...
//
- http://finzi.psych.upenn.edu/R/library/stats/html/predi...
- http://finzi.psych.upenn.edu/R/library/ggplot2/html/sta...
- ありがとうございます。それらしいグラフを描けるようにな...
- 上にあります、「df an estimate of the effective degrees...
**リストの成分 [#a2766328]
>[[nan]] (2010-10-31 (日) 18:35:42)~
~
初めまして。~
~
リストの成分にアクセスしたいのですが、例えば以下のような...
> test <- function(x) {y=log(x); z=sin(x); return(list(v...
> test(1:3)
$value
[1] 1 2 3
$log
[1] 0.0000000 0.6931472 1.0986123
$sin
[1] 0.8414710 0.9092974 0.1411200
$logの[0.0000000]や$sinの[0.9092974]にアクセスするにはど...
~
宜しくお願いします。~
//
- リストの要素はベクトルになっているので,foo$log[i] のよ...
> foo <- test(1:3)
> class(foo)
[1] "list"
> class(foo$log)
[1] "numeric"
> foo$log[1]
[1] 0
> foo$sin[2]
[1] 0.9092974
- ありがとうございました! -- [[nan]] &new{2010-10-31 (日...
- この場合は名前付きリストなので$が使えますが,[...
**空の値を欠損値と指定する [#ef906715]
>[[のの]] (2010-10-31 (日) 04:07:34)~
~
データフレームxの中の列名(変数名)aについて~
> attach(x)
> x <- ifelse(a=="", NA, a)
とすると、空の値を欠損値NAと指定できます。~
しかし、aがfactorだった場合には、factorの性質が失われてし...
何かもっとエレガントな方法はあるのでしょうか?~
> x <- subset(x, a != "")
> table(a, useNA="always")
これも違うようです。~
//
- x$a <- factor(sub("^$", NA, x$a)) とするかなあ?(attac...
- ありがとうございます、見事ですね。美しいです。attachが...
- attach が嫌いな理由。(1) 引用はできるが付値ができない(...
- 河童さん、丁寧にありがとうございます。(1),(2)の理由は何...
**ブートストラップ法によるreliability [#ed3b7378]
>[[MKI]] (2010-10-29 (金) 22:29:49)~
~
多変量解析を行い、意味のありそうな説明変数を取り出す作業...
1.スプレッドシートからランダムにサンプリング(重複あり)~
2.一般化線形モデルに当てはめ~
3.stepAIC???で残った説明変数を抽出~
4.1〜3を1000回繰り返す~
といった感じになるかと思うのですが3.の部分が方法として...
//
- 追記ですが、指示されたクライテリアによる方法とstepAICを...
- ブートストラップを要求してくる割に,多くの問題が指摘さ...
- 指示を仰げる統計学専門家が身近におりませんので、一応、s...
**abline(h = 5) との交点の X の値 [#f6e3b4ba]
>[[hashi]] (2010-10-28 (木) 05:34:07)~
~
Q&A (初級者コース)/11であった「[[任意の X 軸と曲線との...
以下がデータです。
x <- c(2:10)
y <- c(0.084, 3.642, 12.472, 27.262, 47.035, 67.439, 83....
plot(x, y, xlim = c(2, 10), ylim = c(0, 100))
lines(spline(x, y, n = 20), col = 2)
このとき、abline(h = 5) を作図したときスプライン曲線との...
どうかよろしくご教授お願いいたします。~
//
- 正確ではないですけど,グラフィックウインドウをなるべく...
または,splinefun( ) で得られる関数を使って二分法などで答...
- 昼飯前でしたので,ニュートン法にしました。初期値はなる...
solve.spline <- function(x, y, y.val, x.init)
{
fun <- splinefun(x, y)
x <- x.init
repeat {
x2 <- (y.val-fun(x))/fun(x, 1)+x
if (abs(x-x2) < 0.0001) return(mean(c(x, x2)))
x <- x2
}
}
使用例
> solve.spline(x, y, 5, 4.5) # y=5 になる
[1] 3.205662 # x の値
> solve.spline(x, y, 30, 6) # y=30 になる
[1] 5.150513 # x の値
> fun <- splinefun(x, y) # これがスプライン曲線の関数
> fun(5.150513) # x=5.150513 のとき
[1] 30.00001 # y=30.00001 になってる
- 河童の屁は,河童にあらず,屁である。様ありがとうござい...
- > 値が異なるのか! y=xに対称なスプラインにはならないん...
誤差を考える方向が垂直方向か水平方向かの違いがあるんです...
**各列毎にある条件にあう要素の数をカウント [#q9c14aad]
>[[MKI]] (2010-10-27 (水) 13:17:49)~
~
データフレームの各列毎にある条件(たとえば0.1以上など)を...
//
- apply(データフレーム, 2, function(x) sum(x > 0.1)) など...
前もって必要な関数 func <- function(x) sum(x> 0.1) を定義...
- ありがとうございます。無事にカウントできました。funcを...
**4つの集合のベン図 [#c9c9d38c]
>[[sh]] (2010-10-27 (水) 09:17:04)~
~
4つの集合のベン図をRで描くにはどうすればよろしいでしょう...
//
- 円を使うかぎりは不可能でしょう。別に,領域の大きさと表...
&ref(vennDiagram.png);
- ありがとうございます。4つの集合のベン図を描くRコードを...
- 昼飯後の仕事ですが,以下のようなものを。~
パラメータは適当なので,あなたの環境だと微調整が必要かも。~
関数の第一引数にカウントを指定する。順番に注意。以下のデ...
前のコメントの図のように,記号だけを描きたいときには第一...
ラベルとカウントを描きたいときには,ラベルを labels 引数...
venn4 <- function(counts, col=c("red", "green", "blue", ...
{
elp <- function(x0, y0, a, b, col, lwd)
{
theta <- 0:360/180*pi
x <- x0+a*cos(theta)
y <- y0+b*sin(theta)
lines(x, y, col=col, lwd=lwd)
}
plot(c(0, 254), c(0, 202), type="n", axes=FALSE, xlab="...
x0 <- c(112, 116, 125, 68)
y0 <- c( 88, 134, 90, 90)
a <- c( 45, 78, 95, 45)
b <- c( 75, 50, 43, 75)
for (i in 1:4) {
elp(x0[i], y0[i], a[i], b[i], col=col[i], lwd=lwd)
}
# "" r g rg b rb gb rgb...
loc.x <- c(170, 120, 160, 118, 185, 135, 169, 134, 58, ...
loc.y <- c( 30, 30, 150, 144, 80, 67, 112, 104, 36, ...
text(loc.x, loc.y-!is.null(labels)*delta.y, labels=coun...
if (!is.null(labels)) {
text(loc.x, loc.y+delta.y, labels=labels)
}
}
venn4(d$counts, labels=c( "", "r", "g", "rg", "b", "rb",...
main="Four factors Venn diagram")
> d
r g b p counts
1 0 0 0 0 42
2 1 0 0 0 40
3 0 1 0 0 32
4 1 1 0 0 4
5 0 0 1 0 15
6 1 0 1 0 19
7 0 1 1 0 26
8 1 1 1 0 7
9 0 0 0 1 10
10 1 0 0 1 27
11 0 1 0 1 43
12 1 1 0 1 2
13 0 0 1 1 20
14 1 0 1 1 47
15 0 1 1 1 13
16 1 1 1 1 8
venn4(d$counts, labels=c( "", "r", "g", "rg", "b", "rb",...
main="Four factors Venn diagram")
&ref(vennDiagram2.png);
- なんで楕円でないといけないのかがやっと分かった... 河童...
- gplots パッケージの venn 関数は,5 集合までのベン図を描...
**行列操作について [#lf3b4999]
>[[ランゲル・ハンス]] (2010-10-26 (火) 10:29:21)~
~
いつも掲示板を参考にさせていただいています。~
さて、下記の行列mの各行の値を逆順にして、行列m2を作りたい...
行列操作でmからm2を作る方法、あるいはdからm2を作る方法を...
d <- c(1, 2, 3, 4, 5, 6, 7, 8, 9)
m <- matrix(d, 3, 3, byrow=TRUE)
d2 <- c(3, 2, 1, 6, 5, 4, 9, 8, 7)
m2 <- matrix(d2, 3, 3, byrow=TRUE)
どうぞよろしくお願いいたします。~
//
- 色々やり方はありますが,一番簡単には m[,3:1] で良いでし...
- ご教示ありがとうございました。簡潔な方法で大変参考にな...
- t(apply(m,1,rev))でもいけますね,たぶん。 -- &new{2010...
**ハフ変換 [#w08b6289]
>[[yorudan]] (2010-10-25 (月) 17:22:10)~
~
ハフ変換を行うためのパッケージはありますか!?~
//
- まあ,ずいぶんぶっきらぼうな質問ですこと。http://seekr....
**library(gregmisc)のバグ!? [#if20f8f6]
>[[のの]] (2010-10-24 (日) 03:42:03)~
~
library(gregmisc)を導入して、excelシートからデータを直接...
いくつかおかしな挙動をみつけたので書き込みます。~
こちらの環境は、MacOS10.6.4, GUI版R version 2.11.1 (2010-...
他の環境で、同じ状況が再現するのかも教えて欲しいです。~
~
1. エクセルシートの中で、"'’"または"…"を使っていると次の...
Wide character in print at /Library/Frameworks/R.framewo...
調べた範囲では、たぶん内部処理でperlに文字列を渡すときに...
これが&ref(sampleperlerror.xls,,サンプルファイル);です。~
2. サンプル数が増えてしまう~
こちらの方が問題が大きいです。Rはエラー表示しませんが、変...
試行錯誤して、""',"この文字列を含むとおかしくなることは再...
これが&ref(samplelengtherror.xls,,サンプルファイル);です。~
まだ、library(gregmisc)開発サイトの方は良く調べていないの...
//
- それぞれエラーの原因はあるでしょうけど,それをバグとし...
- コメントありがとうございます。そうですね、仕様なのかも...
**図の中に+/- [#pa0744e5]
>[[MKI]] (2010-10-22 (金) 13:29:37)~
~
図(グラフ)の中に平均(変数)+/-標準偏差(変数)を書き込...
可能ですが、変数などと組み合わせて表示する方法はないでし...
//
- こういうことがやりたいのかな?~
eval と parse を使えばよいです。 -- [[河童の屁は,河童に...
plot(hist(rnorm(10000)))
mean <- c(3.2, 4.5, 6.8)
sd <- c(0.2, 0.1, 0.6)
x <- c(-3, -2, 2)
y <- c(1100, 1300, 1500)
for (i in 1:3) {
str <- sprintf("text(%f, %f, labels=expression(%f%%+-%%...
eval(parse(text=str))
}
&ref(eval-parse.png);
- ありがとうございます。全くその通りです。3日も試行錯誤...
- 失礼!for は無用でした。 -- [[河童の屁は,河童にあらず...
plot(hist(rnorm(10000)))
mean <- c(3.2, 4.5, 6.8)
sd <- c(0.2, 0.1, 0.6)
x <- c(-3, -2, 2)
y <- c(1100, 1300, 1500)
str <- sprintf("text(%f, %f, labels=expression(%f%%+-%%%...
eval(parse(text=str))
**scatterplot3dでの三次元プロットのサイズ設定について [#f...
>[[しげゆき]] (2010-10-18 (月) 10:39:18)~
~
XPでR2.11.1の初心者です。よろしくお願いします。~
~
scatterplot3dでプロットの色、サイズを変えた図を作成してい...
~
以下データで左3列がXYZ軸、colorが色4種類、sizeが5段階です。
sisu dens length color size
1 -115 1.4 9.8 A 5
2 -62 1.6 7.0 A 3
3 108 1.7 452.0 B 2
4 174 1.8 202.0 B 1
5 184 1.7 141.0 B 4
6 11 1.7 10.2 C 4
7 23 1.7 40.0 C 5
8 -14 1.8 232.0 D 5
9 127 1.7 132.0 D 3
scatterplot3d(x=d$sisu, y=d$dens, z=d$length,
color=c(2,3,4,5)[unclass(d$color)],
cex.symbols=c(1,2,3,4,5)[unclass(d$size)])
cexを書き出しましたが、データどおりでおかしくありませんで...
> c(1,2,3,4,5)[unclass(d$size)]
[1] 5 3 2 1 4 4 5 5 3
どこか間違っているのでしょうか。~
//
- 完全にはフォローしていませんが,scatterplot3d のバグだ...
scatterplot3d の 88 行目に dat <- dat[y.ord, ] というのが...
対応策としては,88 行目と 92 行目をコメントアウトしてしま...
しかるべき方面へ,バグ報告してください。 -- [[河童の屁は...
&ref(scatterplot3d.png);
- どうもありがとうございます! それで重ねてで恐縮なので...
- scatterplot3d2 <- edit(scatterplot3d) で編集します。編...
? edit でオンラインヘルプを見てください。~
それでもうまくいかないというときは,&ref("scatterplot3d2....
source("scatterplot3d2.R") で読み込み,scatterplot3d のか...
- 重ねてありがとうございます。教えていただいたとおりの対...
- コメント途中で切れてしまいました。全くお手上げと思って...
**ベクトルの個数を返す関数の自作 [#b1148192]
>[[のの]] (2010-10-14 (木) 11:05:44)~
~
いつもお世話になります。
例えば、次のようなベクトルが二つあるとき、
x <- c(1:10)
y <- c(20:40)
test(x)とtest(y)の結果が1でtest(c(x,y))の結果が2となる...
test <- function(i) {
text <- as.character(match.call()[2])
if (grep("^c", text) != 1) {1}
else {grep(",", text)}
}
のようになるのかと考えましたが上手くいきません。~
//
- 「test(x)とtest(y)の結果が1で test(c(x,y))の結果が2と...
- ベクトルの個数というか、変数の数というのか、オブジェク...
- やり方はいろいろあると思いますけど,簡単に書くなら以下...
単に,カンマの個数を見ているだけなので,実際に利用すると...
この関数があなたの意図した仕様を満たしているかどうか,私...
> test <- function(arg)
+ {
+ sum(unlist(strsplit(deparse(substitute(arg)), ""))=="...
+ }
> x <- 1:10
> y <- 21:26
> z <- 31:48
> test(x)
[1] 1
> test(c(x, y))
[1] 2
> test(c(x, y, z))
[1] 3
- まさに求めていた回答です。理解するのに時間がかかりまし...
**周囲の値を用いた中心座標の平均値の算出 [#oee4e844]
>[[Saito]] (2010-10-13 (水) 13:00:02)~
~
いつもお世話になっています。~
過去ログ等検索しましたが、見つからなかったので質問させて...
座標と座標に付与されたデータからなる3列のデータセットがあ...
> ###仮想データセット###
> ###x, yが座標で、zが値###
> mat <- data.frame(expand.grid(x=1:6, y=1:4), z=1:24)
> mat
x y z
1 1 1 1
2 2 1 2
3 3 1 3
4 4 1 4
5 5 1 5
6 6 1 6
7 1 2 7
8 2 2 8
9 3 2 9
10 4 2 10
11 5 2 11
12 6 2 12
13 1 3 13
14 2 3 14
15 3 3 15
16 4 3 16
17 5 3 17
18 6 3 18
19 1 4 19
20 2 4 20
21 3 4 21
22 4 4 22
23 5 4 23
24 6 4 24
> ###y軸方向に足し合わせたときの行列を用意###
> mat2 <- data.frame(matrix(0, ncol=ncol(mat), nrow=nrow...
>
> ###x軸方向にも足し合わせたときの行列を用意###
> mat3 <- data.frame(matrix(0, ncol=ncol(mat), nrow=nrow...
>
> ###y軸の値がx軸方向にいくつ詰まってるのか確認###
> a <- as.numeric(summary(as.factor(mat[, 2]))[1])
>
> ###y軸方向に何度足せばよいのか確認###
> b <- length(levels(as.factor(mat[, 2])))
>
> ###等比数列でy軸の値をx軸方向に詰まっている分だけ足し...
> for (i in 1 : (b/2)) {
+ mat2[((i-1)*a+1):(i*a), ] <-
+ mat[((2*a)*(i-1)+1):((2*a)*(i-1)+a), ] +
+ mat[((2*a)*(i-1)+(1+a)):((2*a)*(i-1)+(a*2)), ]
+ }
> mat2
X1 X2 X3
1 2 3 8
2 4 3 10
3 6 3 12
4 8 3 14
5 10 3 16
6 12 3 18
7 2 7 32
8 4 7 34
9 6 7 36
10 8 7 38
11 10 7 40
12 12 7 42
> ###同様にx軸についても###
> for(i in 1 : (nrow(mat2)/2)){
+ mat3[i, ] <- mat2[(2*(i-1)+1), ] + mat2[(2*i), ]
+ }
> mat3
X1 X2 X3
1 6 6 18
2 14 6 26
3 22 6 34
4 6 14 66
5 14 14 74
6 22 14 82
> ###最終的に得たい座標セット###
> ###周囲4つの値の平均となってほしい###
> mat3/4
X1 X2 X3
1 1.5 1.5 4.5
2 3.5 1.5 6.5
3 5.5 1.5 8.5
4 1.5 3.5 16.5
5 3.5 3.5 18.5
6 5.5 3.5 20.5
>
一応、上記のへたくそなプログラムでもおおよそのやりたいこ...
一つは、周囲4つの平均でなく周囲9つの平均や16の平均(つまり...
そこを明示的に加えたいのですが、上手く書けませんでした(例...
~
もう一つの条件は、z軸にNAが含まれている座標があるのですが...
例えば、~
~
mat[1, 3] <- NA
等とした時には、そのまま上記プログラムを走らせると最後ま...
4で割るのではなく、そのときだけ上記例ですと3で割ってほし...
さらに、このデータ、実際は結構大きな行列(6万×3くらいです...
高速化した例ですと、大変助かります。~
~
どなたか上記の条件で変換が出来る方がいらっしゃいましたら...
//
- 以下のようなプログラムを書けば簡単です。行列の添え字に...
関数
func <- function(mat, n2)
{
n <- sqrt(n2)
nr <- nrow(mat)
nc <- ncol(mat)
stopifnot(nr%%n == 0 && nc%%n == 0)
ans <- NULL
for (j in 0:(nc%/%n-1)*n) {
ind.j <- (j+1):(j+n) # j+1 から j+n までの列
for (i in 0:(nr%/%n-1)*n) {
ind.i <- (i+1):(i+n) # i+1 から i+n までの行
ans <- c(ans, mean(ind.i), mean(ind.j),
mean(mat[ind.i, ind.j], ...
}
}
return(data.frame(matrix(ans, ncol=3, byrow=TRUE)))
}
実行例
mat <- matrix(1:108, 9, 12)
mat[4,5] <- mat[7,3] <- mat[9,6] <- NA # 欠損値を適当に...
mat
(ans <- func(mat, 9)) # 9×12 行列を,3行×3列単位でまとめる
実行結果
> mat
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]...
[1,] 1 10 19 28 37 46 55 64 73 82...
[2,] 2 11 20 29 38 47 56 65 74 83...
[3,] 3 12 21 30 39 48 57 66 75 84...
[4,] 4 13 22 31 NA 49 58 67 76 85...
[5,] 5 14 23 32 41 50 59 68 77 86...
[6,] 6 15 24 33 42 51 60 69 78 87...
[7,] 7 16 NA 34 43 52 61 70 79 88...
[8,] 8 17 26 35 44 53 62 71 80 89...
[9,] 9 18 27 36 45 NA 63 72 81 90...
> (ans <- func(mat, 9))
X1 X2 X3
1 2 2 11.000
2 5 2 14.000
3 8 2 16.000
4 2 5 38.000
5 5 5 41.125
6 8 5 42.750
7 2 8 65.000
8 5 8 68.000
9 8 8 71.000
10 2 11 92.000
11 5 11 95.000
12 8 11 98.000
性能評価
> mat <- matrix(1:(500*500), 500) # セル数が25万
> system.time(func(mat, 4)) # これが,一番時間のかかる場...
ユーザ システム 経過
35.414 49.723 85.492
> system.time(func(mat, 25))
ユーザ システム 経過
1.599 1.213 2.886
> system.time(func(mat, 100))
ユーザ システム 経過
0.277 0.030 0.407
- 河童の屁は,河童にあらず,屁である。さん、早速の回答を...
以下、確認と改造プログラムです。
###作成して頂いたfuncへ自分のデータを変換###
> mat2 <- data.frame(expand.grid(x=1:6, y=1:4), z=1:(6*4))
> mat3 <- matrix(mat2[, 3], 6, 4)
> func(mat3, 4) #確認
X1 X2 X3
1 1.5 1.5 4.5
2 3.5 1.5 6.5
3 5.5 1.5 8.5
4 1.5 3.5 16.5
5 3.5 3.5 18.5
6 5.5 3.5 20.5
上記の変換で、作っていただいた関数用にデータ加工する方法...
> ###1から始まらない座標系を与える###
> mat4 <- data.frame(expand.grid(x=seq(11, 16),
+ y=seq(3, 6)), z=1:24)
>
> ###番地を付け足す###
> mat5 <- data.frame(mat4, expand.grid(x2=1:length(level...
+ y2=1:length(levels(as.factor(mat4[, 2])))
+ ))
>
> ###座標を元の座標に戻すように改造###
> func2 <- function(mat, n2, MAT)
+ {
+ n <- sqrt(n2)
+ nr <- nrow(mat)
+ nc <- ncol(mat)
+ stopifnot(nr%%n == 0 && nc%%n == 0)
+ ans <- NULL
+ for (j in 0:(nc%/%n-1)*n) {
+ ind.j <- (j+1):(j+n) # j+1 から j+n までの列
+ for (i in 0:(nr%/%n-1)*n) {
+ ind.i <- (i+1):(i+n) # i+1 から i+n までの行
+
+ ###合致するものをsubsetで探してくる###
+ ans <- c(ans, mean(MAT[ind.i, 1]), mean(
+ subset(MAT[, 2],
+ MAT[, 4]==ind.i&M...
+ mean(mat[ind.i, ind.j]...
+ }
+ }
+ return(data.frame(matrix(ans, ncol=3, byrow=TRUE)))
+ }
###整合性の確認###
> func(mat3, 4)
X1 X2 X3
1 1.5 1.5 4.5
2 3.5 1.5 6.5
3 5.5 1.5 8.5
4 1.5 3.5 16.5
5 3.5 3.5 18.5
6 5.5 3.5 20.5
###整合性の確認###
> func2(mat3, 4, mat5)
X1 X2 X3
1 11.5 3.5 4.5
2 13.5 3.5 6.5
3 15.5 3.5 8.5
4 11.5 5.5 16.5
5 13.5 5.5 18.5
6 15.5 5.5 20.5
> 性能評価
> mat <- data.frame(expand.grid(x=101:600, y=101:600),z=...
> mat2 <- matrix(mat[, 3], 500, 500)
> mat3 <- data.frame(mat, expand.grid(x2=1:as.numeric(su...
+ y2=1:as.numeric(su...
+ ))
>
> system.time(func2(mat2, 4, mat3))
ユーザ システム 経過
539.02 0.12 539.36 #約9分かかります。
> system.time(func2(mat2, 25, mat3))
ユーザ システム 経過
83.35 0.00 83.35
> system.time(func2(mat2, 100, mat3))
ユーザ システム 経過
20.77 0.00 20.77
もう目的は十分達成されていると思うので、お時間があれば、...
もし、座標を元に戻すやり方をもっと早く処理する方法をご存...
- 簡単な話。行と列の座標値をベクトルに入れて,関数の引数...
func <- function(mat, rv, cv, n2) # ★★ rv, cv を追加
{
n <- sqrt(n2)
nr <- nrow(mat)
nc <- ncol(mat)
stopifnot(nr%%n == 0 && nc%%n == 0)
ans <- NULL
for (j in 0:(nc%/%n-1)*n) {
ind.j <- (j+1):(j+n) # j+1 から j+n までの列
for (i in 0:(nr%/%n-1)*n) {
ind.i <- (i+1):(i+n) # i+1 から i+n までの行
ans <- c(ans, mean(rv[ind.i]), mean(cv[ind.j]), # ★★ ...
mean(mat[ind.i, ind.j], ...
}
}
return(data.frame(matrix(ans, ncol=3, byrow=TRUE)))
}
#実行例
mat <- matrix(1:108, 9, 12)
mat[4,5] <- mat[7,3] <- mat[9,6] <- NA # 欠損値を適当に...
rv <- c(1,3,6,9,11,20,27,35,42) # ★★ 行方向の座標ベクト...
cv <- c(2,4,6,7,8,11,13,16,19,22,25,27) # ★★ 列方向の座...
rownames(mat) <- rv # これは付けなくても良いけど
colnames(mat) <- cv # 〃
mat
(ans <- func(mat, rv, cv, 9)) # 9×12 行列を,3行×3列単位...
> mat
2 4 6 7 8 11 13 16 19 22 25 27
1 1 10 19 28 37 46 55 64 73 82 91 100
3 2 11 20 29 38 47 56 65 74 83 92 101
6 3 12 21 30 39 48 57 66 75 84 93 102
9 4 13 22 31 NA 49 58 67 76 85 94 103
11 5 14 23 32 41 50 59 68 77 86 95 104
20 6 15 24 33 42 51 60 69 78 87 96 105
27 7 16 NA 34 43 52 61 70 79 88 97 106
35 8 17 26 35 44 53 62 71 80 89 98 107
42 9 18 27 36 45 NA 63 72 81 90 99 108
> (ans <- func(mat, rv, cv, 9)) # 9×12 行列を,3行×3列単...
X1 X2 X3
1 3.333333 4.000000 11.000
2 13.333333 4.000000 14.000
3 34.666667 4.000000 16.000
4 3.333333 8.666667 38.000
5 13.333333 8.666667 41.125
6 34.666667 8.666667 42.750
7 3.333333 16.000000 65.000
8 13.333333 16.000000 68.000
9 34.666667 16.000000 71.000
10 3.333333 24.666667 92.000
11 13.333333 24.666667 95.000
12 34.666667 24.666667 98.000
- 出来ました。以下確認です。
> mat2 <- data.frame(expand.grid(x=11:16, y=3:6), z=1:(6...
> mat3 <- matrix(mat2[, 3], 6, 4)
> rv <- c(11:16)
> cv <- c(3:6)
> func(mat3, rv, cv, 4) #確認
X1 X2 X3
1 11.5 3.5 4.5
2 13.5 3.5 6.5
3 15.5 3.5 8.5
4 11.5 5.5 16.5
5 13.5 5.5 18.5
6 15.5 5.5 20.5
自分の実際のデータに適用しても上手く動きました。非常に勉...
**ポリコリック相関係数行列の算出について [#i46ed896]
>[[JJ]] (2010-10-12 (火) 20:17:51)~
~
まったくの初級者です。~
ポリコリック相関係数を用いた因子分析(最尤法、プロマック...
現在までのところ、~
factanal(covmat=cor(データ), factors=3,promax,regression)~
~
という感じまでは来たのですが。。。数字は出ますが、これは...
~
ちなみにpolychor(x,y,)関数の場合、相関係数にはなので、相...
~
まことに見当はずれかもしれませんが、誰か力を貸していただ...
上記の corのままでは~
//
- 投稿途中で送信しちゃいましたか?~
「相関係数にはなので、相関係数行列にはなりませんよね」。...
どう言うところに,どういう風に力を貸したらよいのかよくわか...
- すみません途中で切れてしまいました。当方も統計、Rとも...
- 「このコマンドを実行してもpolychorは、相関係数を算出す...
なにが無理なんですか?そのようにすれば,相関係数行列はポ...
どういうことをやって,どういう結果が出て,その結果をみて...
- そうですね。できる限り正確に説明します。 もともと生のデ...
- psychパッケージのpolychoric関数ではどうでしょう? -- &...
- 返信ありがとうございます。すぐに行ってみたのですが、 fa...
- 謝る前に色々試したりヘルプを読んだほうがいいですよ。pol...
- かなり読んだつもりですが、まだわかりません。 factanal(c...
library(psych)
library(polycor)
data(bfi)
dat <- bfi[1:17] # 17項目のデータ
pcr <- polychoric(dat)
pcr # polychoric関数はrhoやtauといった複数の値を返す。po...
ans <- factanal(covmat=pcr$rho, factors=2, rotation="pro...
ans
- ポリコリック相関行列からfactanal関数で探索的因子分析を...
- 上のプログラム,コピーペーストしたらちゃんと結果が出ま...
- お二人ともありがとうございました。非常に勉強になりまし...
**続いている数字の数を出力する方法 [#ba84fb76]
>[[sayaka]] (2010-10-12 (火) 14:05:00)~
~
以前、「T,Fを文字列として出力するには」でお世話になりまし...
うまく説明するのが難しいのですが、下記の data のようなベ...
いろいろと試行錯誤したのですが、どうしても思いつきません。~
data はあるデータ中のエラーデータの行番号を抽出したもので...
開始位置は下記のposiで求めました。~
どうぞよろしくお願いします。~
> data
[1] 14 41 73 152 296 297 399 400 401 402 418 419 420...
[23] 430 431 451 452 453 454 460 461 466 500 501 502 503...
> posi <- data[diff(c(0,data)) != 1]
> posi
[1] 14 41 73 152 296 399 418 451 460 466 500
> a
[1] 1 1 1 1 2 4 14 4 2 1 9
//
- どっかのパッケージに関数がありそうだけど、 table(c(0,cu...
- ありがとうございます!table()を使ってこんなことが出来る...
**RとWindows 7の相性 [#i6a8c615]
>[[菊亭]] (2010-10-06 (水) 22:12:34)~
~
現在XPでRを使っております。そのうち7にアップグレードしょ...
//
- 「UAC無効」にして「管理者権限で実行」すればたいして問題...
**plotirxのcolor2D.matplotの色表示について [#q928de1d]
>[[ランゲル・ハンス]] (2010-10-02 (土) 09:51:51)~
~
plotrixにあるcolor2D.matplot関数について質問させていただ...
library(plotrix)
x <- c(1, 0, 10, 5, 3, 6, 4, 5, 4, 3, 8, 5, 1, 0, 7, 5)
data <- matrix(x, ncol=4)
color2D.matplot(data, c(1, 0), c(0, 1), c(0, 1), show.va...
このmatirixの数値をカラー表示のマトリックスに変換して数値...
上記の例では変換できるのですが、マイナスがある場合のスケ...
例えばyの場合について
y <- c(1, 0, 10, 5, -3, 6, -4, 5, 4, 3, 8, 5, 1, 0, 7, 5)
よろしくお願いします。~
//
- 何をどうしたいのか、具体的に示すことはできませんか?あ...
- すみません。yをcolor2D.matplot()でマトリックスを色分...
- ですから、「うまくいかない」というのは*具*体*的*に*どの...
- コメント遅くなり申し訳ありません。yは私の手違いでplot...
**psych パッケージの factor.pa の結果表示 [#oba25d2a]
>[[隣は何をする人ぞ]] (2010-10-01 (金) 21:34:02)~
~
psych パッケージを使って因子分析を行ったとき、因子負荷量...
library(psych)
data(bfi)
fa.parallel(bfi)
fpa.out <- factor.pa(bfi, nfactors=3, rotate="promax")
print(fpa.out) # 分析に使用した変数順そのまま
print(fpa.out, sort=TRUE) # 因子負荷量の大きい順に並べ替...
で分析を行いました。並び順は異なっても、各変数の因子負荷...
まず、print(fpa.out) の結果です。いくつかの変数だけを選択...
########## デフォルト(sort=FALSE)のとき
> print(fpa.out)
Factor Analysis using method = pa
Call: factor.pa(r = bfi, nfactors = 3, rotate = "promax")
Unstandardized loadings based upon covariance matrix
PA1 PA2 PA3 h2 u2 H2 U2
A1 -0.22 0.08 0.01 0.0600 0.94 0.0600 0.94
:
E4 0.74 -0.06 -0.15 0.4823 0.52 0.4812 0.52
:
gender 0.20 0.15 0.00 0.0490 0.95 0.0490 0.95
education -0.03 -0.04 0.10 0.0099 0.99 0.0099 0.99
age 0.04 -0.09 0.14 0.0398 0.96 0.0398 0.96
PA1 PA2 PA3
SS loadings 3.30 2.66 2.15
Proportion Var 0.12 0.09 0.08
Cumulative Var 0.12 0.21 0.29
Standardized loadings
item PA1 PA2 PA3 h2 u2
A1 1 -0.22 0.08 0.01 0.0600 0.94
:
E4 14 0.73 -0.06 -0.15 0.4812 0.52
:
gender 26 0.20 0.15 0.00 0.0490 0.95
education 27 -0.03 -0.04 0.10 0.0099 0.99
age 28 0.04 -0.09 0.14 0.0398 0.96
次に、print(fpa.out, sort=TRUE) の結果です。
########## sort=TRUE を指定したとき
> print(fpa.out, sort=TRUE)
Factor Analysis using method = pa
Call: factor.pa(r = bfi, nfactors = 3, rotate = "promax")
Unstandardized loadings based upon covariance matrix
PA1 PA2 PA3 h2 u2 H2 U2
E4 0.74 -0.06 -0.15 0.4823 0.94 0.339 0.66
:
A1 -0.22 0.08 0.01 0.0600 0.73 0.076 0.92
gender 0.20 0.15 0.00 0.0490 0.58 0.078 0.92
:
age 0.04 -0.09 0.14 0.0398 0.99 0.039 0.96
education -0.03 -0.04 0.10 0.0099 0.96 0.010 0.99
PA1 PA2 PA3
SS loadings 3.30 2.66 2.15
Proportion Var 0.12 0.09 0.08
Cumulative Var 0.12 0.21 0.29
Standardized loadings
item PA1 PA2 PA3 h2 u2
E4 14 0.62 -0.05 -0.12 0.339 0.66
:
A1 1 -0.25 0.09 0.01 0.076 0.92
gender 26 0.25 0.19 0.00 0.078 0.92
:
age 28 0.04 -0.09 0.13 0.039 0.96
education 27 -0.03 -0.04 0.10 0.010 0.99
Unstandardized loadings based upon covariance matrix につ...
Standardized loadings については、並べ替えしたのとしない...
なぜでしょう。~
一応、psych クラスの print メソッド(psych:::print.psych) ...
多くの人が使っているパッケージなので、いまだにバグがある...
//
- バグだと思います。psych:::print.psych.faの中を調べてみ...
- 作者からやっと回答がありました。
I finally had time to find the bug. It was not in fact...
the print routine which thus affected fa, as well as fac...
The sorted loadings are now sorted correctly, as are the...
I have fixed this for version 1.0.93 which should be rel...
だそうです。 -- [[隣は何をする人ぞ]] &new{2010-11-28 (日)...
**Rの実行を中断する方法 [#l8909641]
>[[のの]] (2010-09-29 (水) 02:16:00)~
~
MacでGUI版Rを使っています。version.string R version 2.11....
エディタにコマンドを連ねて、メニュー>編集>実行をする場...
コマンドリストの任意の場所でRの実行を止める方法を探してい...
readline(),stopifnot()などを試しましたがだめでした。~
今のところquit()を入れると、そこで、保存するかどうか聞い...
//
- try 関数を使うのが一つの方法。warning もエラーとして捉...
> try({ old <- options(warn=2) # これと,
+ a <- sqrt(-9)
+ print(,)
+ print("ok")
+ options(old) }) # これの対で囲む
Error in sqrt(-9) : # 最初のエラーでストップ
(警告から変換されました) 計算結果が NaN になりました
> try({ old <- options(warn=2)
+ a <- sqrt(9) # 修正した
+ print(,)
+ print("ok")
+ options(old) })
Error in .Internal(print.default(x, digits, quote, na.pr...
'x'が見つかりません # 二番目のエラーでストップ
> try({ old <- options(warn=2)
+ a <- sqrt(9)
+ print(a) # ここも直した
+ print("ok")
+ options(old) })
[1] 3 # 全部うまくいった
[1] "ok"
その他に,tryCatch, withCallingHandlers, signalCondition,...
- お礼が遅くなりました。詳細にありがとうございます。 -- [...
- 多分、質問の仕方が分かりにくかったと思います。やりたか...
、どこかRの実行を止めたい場所に簡単な命令文か何かを入れて...
while(1){ #エディタの最初に記載
+ ここから実行するコマンドリスト
+ 次のコマンド・・・
+ break #ここでRの実行を止める
+ 結果として実行されないコマンド
+ break;} #もし途中にbreakがない場合にはここで終了
このような方法も思いつきましたが、コマンドの結果を出力さ...
- 途中で止められれば,エラーじゃなくてもいいんですね。で...
- 上の try の 2 番目の例のように,止めたいところにエラー...
それとも,止めた後,実行継続をするかどうか判断できるよう...
重箱の隅つつきをするなら,while ループにして break を挿入...
「コマンドの結果を出力させるためにcat()を使わないといけな...
- ご質問の内容を正しく理解できているか分からないのですが....
print(1)
print() # Error
print(2)
と書いて[全て実行]すると、
> print(1)
[1] 1
> print() # Error
以下にエラー print.default() :
要素 1 は空です;
> print(2)
[1] 2
のように、エラー以降のprint(2)も実行されてしまう、と。
これを解決したいということであれば、単純にスクリプト全体...
{
print(1)
print() # Error
print(2)
}
のようにするのはいかがでしょう。括弧が閉じたところでスク...
> {
+ print(1)
+ print() # Error
+ print(2)
+ }
[1] 1
以下にエラー print.default() :
要素 1 は空です;
> # print(2)は実行されていない
もちろんこんなことせずとも、全体をファイルに保存してからs...
- 皆様、色々とコメントありがとうございました。とても勉強...
- 余談ですが、今MacとWinのGUI版Rを使った生物統計の講座を...
**パッケージのロードは起動後毎回必要ですか [#xebf839f]
>[[shumei]] (2010-09-25 (土) 14:33:13)~
~
Mac版R 2.11.1 をインストールした後、パッケージurcaをイン...
urcaをロードし、パッケージの使用はできましたが、Rを起動す...
何冊か書籍に当たってみましたが、該当する記述が見つからず...
パッケージのロード状態を維持するにはどうすればいいのでし...
ご教授下さい。どうぞよろしくお願い致します。~
//
- 「パッケージのロードは起動後毎回必要ですか」 はい,毎...
R を起動するたびに,自動的にロードしたいならば,ホームデ...
どうやって .Rprofile を弄るかはわかるでしょうかね?「ター...
- 早速教えて頂き、ありがとうございます。パッケージのロー...
.Rprofileというのは、Macの場合ライブラリの下の方にある、R...
library(urca)、ないし、setHook(packageEvent("urca","onLoa...
- 「.Rprofileというのは、Macの場合ライブラリの下の方にあ...
素直じゃないですね(^_^;)~
「ホームディレクトリの .Rprofile に, library(urca) 等と書...
なぜにして,Rprofile.site だと思ったのですか? -- [[河童...
- ごめんなさい。先週初めてRをさわり始めたもので、右も左も...
ホームディレクトリに.Rprofileを作成しましたら、無事作動し...
ありがとうございました。 -- [[shumei]] &new{2010-09-25 (...
- ~/.Rprofileと教えるところを単に.Rprofileと書くと、説明...
**ヒストグラムの階級分割 [#o0d3ed86]
>[[moyu]] (2010-09-21 (火) 14:54:22)~
~
ヒストグラムで、ある一部の区間において細かく階級を分割し...
hangseng = read.csv("ASIA/hangseng/hangsengdaily-1986dec...
hangseng.ts = ts(rev(hangseng$Close),start=c(1986,12,31)...
ts.plot(hangseng.ts)
ts.plot(diff(hangseng.ts))
hist(diff(hangseng.ts),breaks=30,col="magenta")
histの中のbreaksをどういじったらいいのでしょうか??~
//
- ? hist で breaks の項を読みませんでしたか?
breaks
one of:
・ a vector giving the breakpoints between histogram c...
・ a single number giving the number of cells for the ...
・ a character string naming an algorithm to compute t...
・ a function to compute the number of cells.
In the last three cases the number is a suggestion only.
あなたが指定した breaks=30 は,この中の 2 番目のものです...
- 回答ありがとうございます。助かりました。しかし上で示さ...
- オンラインヘルプの見方分かりませんか?コンソールに "? h...
**embedFontsで「・」が表示される [#p96c9eed]
>[[初級者です。]] (2010-09-20 (月) 18:11:38)~
~
CentOS 5.5 に Rをインストールし、以下の操作をしました。
pdf("test.pdf",family="Japan1")
plot(1:10,ylab="test test")
dev.off()
embedFonts("test.pdf")
すると、ylabに指定した"test test"文字列の間にある空白の位...
正確には、"test ・test"という感じで、普通に半角スペースが...
embedFonts()を呼ぶ前の状態では、「・」は表示されていませ...
また、その状態で文章のプロパティから使用されているフォン...
「KozMinPro-Regular-Acro」
「KozMinPro-Regular-Acro.Bold」
「KozMinPro-Regular-Acro.BoldItalic」
「KozMinPro-Regular-Acro.Italic」
「Symbol」
「ZapfDingbats」
というフォントが使用されていると出ますが、embedFonts()を...
何らかフォントの設定が足りないとは思い、いろいろ調べてみ...
同様の現象を解決された方がいらっしゃれば方法をご教示いた...
よろしくお願いいたします。~
//
- pdf(file="test.pdf",family="Japan1Ryumin") としたら、...
- sazanamiがいやんばかんと言うことだったと思いますので, I...
に
/KozMinPro-Regular-Acro << /FileType /TrueType /Path (/u...
みたいに記述すれば良いと思います. -- [[なかま]] &new{201...
**ヘルプファイルを表示エラー [#j1af339b]
>[[てるてるぼうず]] (2010-09-19 (日) 23:22:48)~
~
関数のヘルプファイルを表示したいと思い、以下を実行するの...
?…またはhelp(…)毎回以下のようなエラーが出ます~
> ?glm
警告メッセージ:
In file.show(temp, title = gettextf("R Help on '%s'", to...
file.show():ファイル 'C:\DOCUME~1\蜿、蟾晏忽蠢予LOCAL...
> help("glm")
警告メッセージ:
In file.show(temp, title = gettextf("R Help on '%s'", to...
file.show():ファイル 'C:\DOCUME~1\蜿、蟾晏忽蠢予LOCAL...
検索エンジン等で調べてはみましたが、未だ解決していません。~
環境は以下の通りです。
Microsoft Windows XP Professional
Version 2002
Service Pack 3
Intel(R) Core(TM)2 Duo CPU
E8400 @ 3.00GHz
2.99 GHz、976 MB RAM
Rのバージョン
R version 2.11.1 (2010-05-31)
//
- 再インストールして症状が再現されてからまた質問されては...
- てるてるぼうず再インストール後も同じ状況です。現在は別...
**regexprのpatternの文字数によるエラー [#zb34c92f]
>[[sh]] (2010-09-16 (木) 11:50:21)~
~
regexpr(pattern, text, perl = T)を実行したところ、以下の...
以下にエラー regexpr(pattern, text, perl = T) :
追加情報: 警告メッセージ:
In regexpr(pattern, text, perl = T) :
PCREパターンのコンパイルエラー
'regular expression is too large'
at ''
//
- textの長さは?エラーが起きない程度のpatternの長さは?正...
- textは、数十個の要素(各要素は10文字程度の長さの文字列...
- 例えば(簡略化した例です)次のように多段階でマッチング...
> text
[1] "A11" "A12" "A13" "A14" "A15" "A16" "A17" "A18" "A1...
[13] "A23" "A24" "A25" "A26" "A27" "A28" "A29" "A30" "A3...
[25] "A35" "A36" "A37" "A38" "A39" "A40"
> text1 <- gsub(pattern = "A11|A15|A20|A27",NA,text) # ...
> text1
[1] NA "A12" "A13" "A14" NA "A16" "A17" "A18" "A1...
[13] "A23" "A24" "A25" "A26" NA "A28" "A29" "A30" "A3...
[25] "A35" "A36" "A37" "A38" "A39" "A40"
> text2 <- gsub(pattern = "A29|A31|A35|A36|A39",NA,text1)
> text2
[1] NA "A12" "A13" "A14" NA "A16" "A17" "A18" "A1...
[13] "A23" "A24" "A25" "A26" NA "A28" NA "A30" NA ...
[25] "A35" NA "A37" "A38" NA "A40"
> is.na(text2)
[1] TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FAL...
[13] FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE TR...
[25] TRUE TRUE FALSE FALSE TRUE FALSE
> text[is.na(text2)] # マッチした文字列
[1] "A11" "A15" "A20" "A27" "A29" "A31" "A35" "A36" "A39"
- これではだめ? -- [[surg]] &new{2010-09-16 (木) 16:45:4...
> text <- paste('AAA11111', seq(11, 29), sep='')
> pattern = c('AAA1111111', 'AAA1111112')
> text %in% pattern
[1] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FAL...
[12] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
- アドバイスありがとうございます。text %in% pattern また...
**read.csv で大きな値を読み込み表示する [#gd4b3980]
>[[g]] (2010-09-14 (火) 11:54:44)~
~
例えば,
A,B,C
3121234567890,10,20
3122345678901,20,30
3123456789012,30,40
という中身のcsvファイルa.csvをread.csvで読み込ませると
> read.csv("a.csv")
A B C
1 3.121235e+12 10 20
2 3.122346e+12 20 30
3 3.123457e+12 30 40
となってしまいます.浮動小数点ではなくそのままの形で読み...
//
- 計算機による数値計算では扱える最大整数は 2^(31)-1 = 214...
> (X <- read.csv("a.csv"))
A B C
1 3.121235e+12 10 20
2 3.122346e+12 20 30
3 3.123457e+12 30 40
> options(digits=22)
> X
A B C
1 3121234567890 10 20
2 3122345678901 20 30
3 3123456789012 30 40
- read.csv("hoge.csv",colClasses=c("character","integer",...
- > 計算機による数値計算では扱える最大整数は 2^(31)-1 = ...
それは,integer のことで,numeric(または double) の有効桁...
> options(digits=22)
> 123456789012345
[1] 123456789012345
> 1234567890123456
[1] 1234567890123456
> 12345678901234567 # 近似による誤差が生じ始める
[1] 12345678901234568
> 123456789012345678
[1] 123456789012345680
> 1234567890123456789
[1] 1234567890123456768
> 12345678901234567890
[1] 12345678901234567168
> 123456789012345678901
[1] 123456789012345683968
> 1234567890123456789012 # 浮動小数点表示になり始める
[1] 1.234567890123457e+21
- digitsの指定で解決しました.ありがとうございました.ち...
- 商品コードならば,数値演算することはないし桁数も一定だ...
**plot エラー xy.coords(x, y, xlabel, ylabel, log) : 'x'...
>[[id]] (2010-09-12 (日) 21:34:03)~
~
密度関数を直接積分することで、分布関数を求めてプロットし...
簡単に書きなおすと以下のようなコードで、実行するとエラー...
> pdf <- function(x) exp(-x)
> cdf <- function(x) integrate(f, 0, x)
> plot(cdf)
以下にエラー xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ
cdf(Inf) などとすると正常な答えを返してくれるので、関数と...
プロットするにはどうすればよいでしょうか?~
~
ちなみに実際に考えている分布は beta prime distribution で...
この分布の cdf に出てくる 2F1 関数の扱いがわからず、上の...
//
- 実行環境がそのまま提示されていませんね。以下のようにな...
「簡単に書きなおすと」ーーー*簡*単*に*書き直さないで,「...
> pdf <- function(x) exp(-x)
> cdf <- function(x) integrate(f, 0, x)
> plot(cdf)
以下にエラー match.fun(f) : オブジェクト 'f' がありま...
- うまくいかない理由はあなたの定義した関数はベクトル化さ...
> cdf <- function(x) sapply(x,function(t) integrate(pdf,...
- お返事ありがとうございます&ミス失礼しました。ご教授い...
- beta prime distribution とは X がベータ分布に従う確率変...
**pooled adjacent violator algorithmについて [#uc315b3a]
>[[sakura]] (2010-09-12 (日) 17:26:35)~
~
Rで、pooled adjacent violator algorithm を使ったライブラ...
//
- ググるとisotoneが該当しますがこういうことではない? -- [...
- 最初、これかと私も思いましたが、・・・。ひとつの繰返し...
- 「最初、これかと私も思いましたが、」こういう後出しじゃ...
- 軽率な質問のようですね。毛頭、愉快犯でもないし、まじめ...
- あなたのことを「愉快犯だ」なんていってません。悲劇のヒ...
**for文内での連番オブジェクトの記述 [#x0cc2fa9]
>[[mtanaka]] (2010-09-07 (火) 20:12:53)~
~
for文で任意の関数に連番で命名したオブジェクトを入力する場...
for文内でのファイル名の記述様式がわかりません。
関数 func()
オブジェクト(入力データ): hoge01, hoge02, hoge03
オブジェクト(出力データ): piyo01, piyo02, piyo03
実行例
piyo01 <- func(hoge01)
piyo02 <- func(hoge02)
piyo03 <- func(hoge03)
この上記の実行例をfor文で記述したいです。~
どなたか、ご助言いただける方がいらっしゃいましたら、宜し...
//
- もしですね,hoge01 から hoge99 まで 99 個あってそれをな...
まあ,あえてやるなら方法がないわけではなく,以下のように...
hoge01 <- 1 # 関数に作用させる対象
hoge02 <- 2
hoge03 <- 3
hoge04 <- 4
for (i in 1:4) { # それぞれの対象について func を作用さ...
eval(parse(text=paste(sprintf("piyo%02i <- func(hoge%02...
}
piyo01 # 結果を参照するときに,一々名前を引用しないとい...
piyo02 # 何の処理をすることなく,単に結果をファイルに書...
piyo03
piyo04
しかし,普通は以下のようにした方がもっと扱いやすいでしょ...
hoge <- 1:4 # 関数に作用させる対象を配列なりリストなりで...
piyo <- func(hoge) # 関数を作用させ結果も配列やリストに...
# 場合によっては,for ループで処理し...
piyo # 結果を引用するときも,配列やリストの要素を参照する
eval(parse(text=foo)) は,今のあなたのやりたいことのため...
繰り返し処理は,データ構造も繰り返し処理に適したものを使...
- まあもともと連番のデータが与えられている場合もあるでし...
> hoge1 <- 1; hoge2 <- 2; hoge3 <- 3; hoge4 <- 4
> N <- 4
> X <- vector("list",N)
> for (i in 1:N) X[[i]] <- eval(parse(text=paste("hoge",...
> str(X)
List of 4
$ : num 1
$ : num 2
$ : num 3
$ : num 4
> foo <- function(x) x^2
> Y <- lapply(X,foo)
> str(Y)
List of 4
$ : num 1
$ : num 4
$ : num 9
$ : num 16
> Y[[1]];Y[[2]];Y[[3]];Y[[4]]
[1] 1
[1] 4
[1] 9
[1] 16
**パッケージに含まれているはずの関数が呼び出せない [#e54e...
>[[rcddnsj]] (2010-09-06 (月) 23:54:37)~
~
Windows7でR version 2.11.1を使用しております。~
~
サポートベクターマシンを試してみたくて、パッケージe1071を...
~
しかし、e1071に含まれているはずの関数predict.svmで予測し...
~
操作はRcmdrのスクリプトウィンドウから実行しています。~
~
このように、パッケージに含まれているはずの関数が呼び出せ...
~
Rの再インストール、パッケージe1071の再インストールなどは...
~
sessionInfo() の実行結果は下記の通りです。
R version 2.11.1 (2010-05-31)
i386-pc-mingw32
locale:
[1] LC_COLLATE=Japanese_Japan.932 LC_CTYPE=Japanese_Jap...
[5] LC_TIME=Japanese_Japan.932
attached base packages:
[1] splines tcltk stats graphics grDevices ut...
other attached packages:
[1] SparseM_0.86 e1071_1.5-24 class_7.3-2 Rcmd...
[8] MASS_7.3-7
loaded via a namespace (and not attached):
[1] tools_2.11.1
どなたか、ご助言いただける方がいらっしゃいましたら、宜し...
//
- まず何よりも?predict.svmです。
Usage:
## S3 method for class 'svm':
predict(object, newdata, decision.values = FALSE,
probability = FALSE, ..., na.action = na.omit)
分かりますよね? -- &new{2010-09-07 (火) 00:07:05};
- ありがとうございます。そもそも関数の使い方を誤っている...
- すみません。そもそも、predict.svmなんて使い方はないとい...
- 度々すみません。総称的関数という言葉は聞いたことがあっ...
- どうしても,フルネームで使いたければ,e1071:::predict.s...
- 普通メソッド関数(この場合 predict.svm)を直接使っても...
**ある条件に対応する要素だけを置換したい [#i255d410]
>[[ito]] (2010-08-31 (火) 20:12:14)~
~
あるベクトルについて、他のベクトルの中のNAに対応する要素...
x <- c(1,3,4,6,8,9)
y <- c(1,NA,2,NA,3,4)
変換後
> x
[1] 1 NA 4 NA 8 9
となるようにしたいのです。
ifelse(x[is.na(y)],NA)
とか考えたのですが、うまくいきません。~
よろしくおねがいします。~
//
-
mapply(max, x, y)
mapplyは1つ目の引数に指定した関数を2つ目以降に指定した...
- ありがとうございました。mapplyは難しいですが、頑張って...
- たびたびすみません。この方法だと、xの要素のほうがyのも...
- x[is.na(y)]<-NA -- &new{2010-08-31 (火) 20:56:11};
- 関数の仕様が不明瞭ですね。x と y の長さが違うときにはど...
func <- function(x, y)
{
nx <- length(x)
ny <- length(y)
if (nx <= ny) {
return(ifelse(is.na(y[1:nx]), NA, x))
}
else {
return(c(ifelse(is.na(y), NA, x[1:ny]), x[(ny+1):nx]))
}
}
# 長さが同じときには色々な方法がある
> x <- c(1,3,4,6,8,9)
> y <- c(1,NA,2,NA,3,4)
> func(x, y)
[1] 1 NA 4 NA 8 9
# x の長さが短いとき,x と同じ長さに y を切り詰めて,x, ...
> x <- c(1,3,4,6,8)
> y <- c(1,NA,2,NA,3,NA)
> func(x, y)
[1] 1 NA 4 NA 8
# x の長さが長いとき,y と同じ長さに x を切り詰めて処理...
> x <- c(1,3,4,6,8,9,10,11)
> y <- c(1,NA,2,NA,3,4)
> func(x, y)
[1] 1 NA 4 NA 8 9 10 11
- どうもありがとうございました。助かりました。 -- [[ito]]...
- (ベクトルの長さが等しいという前提で)NA値の特性を利用...
> 0*y
[1] 0 NA 0 NA 0 0
> x + 0*y
[1] 1 NA 4 NA 8 9
- あと, is.naがNA or NaNである事も忘れずに. -- &new{2010...
**pls回帰分析の有意検定について [#mb5f1172]
>[[初心者]] (2010-08-30 (月) 16:56:25)~
~
いつもお世話になっております。~
~
pls回帰分析をしたいのですが,Rですと,ベータは求められて...
pls回帰分析を学ぶに当たり,岩田先生のpls回帰入門やAcreMak...
~
使用環境は、R2.11.1です。OSはWindowsVista です。~
~
よろしくお願いします。~
//
- どなたからもコメントがないようなので。もともとpls回帰は...
**複数条件でベクトルを抽出する際に、条件が定数ではなくベ...
>[[Saito]] (2010-08-27 (金) 08:52:15)~
~
いつもお世話になっております。~
似た様な質問はいくつかあったのですが、意外にも、条件抽出...
~
ある参照列(座標と価がセット)があるときに、それを参照し...
~
set.seed(1)
a <- seq(1, 10)
b <- seq(1, 10)
c <- rnorm(100)
###参照列###
d <- data.frame(expand.grid(a=a, b=b), c=c)
###当てはめたい座標###
e <- data.frame(a=sample(a, 50000, rep=T), b=sample(b, 5...
###これでは上手く動かない###
subset(d$c, d$a==e$a & d$b==e$b)
###これでも###
subset(d$c, d$a%in%e$a & d$b%in%e$b)
~
つまり、eの座標軸が与えられたときに、dの座標軸と対応させ...
~
for文でやろうと思えばできるのですが、実際はもっとeが大き...
~
どなたか、分かる方がいらっしゃいましたら、ご教示いただけ...
//
- merge(e, d),ただし行の順序が変わってしまう -- [[surg]]...
- 提示されている仕様を満たすという限定で,以下のように提...
d2 <- matrix(d$c, 10, 10)
e2 <- as.matrix(e)
d2[e2]
つまり,この問題は表引きで,d$a, d$b が添え字の二次元配列...
d$c[e$a+10*(e$b-1)]
だけでよいことがわかってしまう。~
d$a, d$b が自然数でないとか,d$c がないセルがあるとかの場...
- > surgさん ありがとうございました。ただ、やはり順番が...
- > 河童の屁は、河童にあらず、屁さん なるほど、上手く座...
想像の通り、実際は三次以上の座標でしたので、この方法で助...
- 参考まで:merge 関数を使って、しかももとの順序を保存す...
> Ord <- data.frame(ord=seq(nrow(e))) # 本来の順序を示...
> A <- merge(merge(cbind(e,Ord),d),Ord) # 欲しい結果
> AA <- A[,-1] # 作業用変数列が...
> str(e)
'data.frame': 50000 obs. of 2 variables:
$ a: int 3 3 6 3 2 6 6 2 3 8 ...
$ b: int 6 8 4 8 7 8 4 2 6 7 ...
> str(A)
'data.frame': 50000 obs. of 4 variables:
$ ord: int 1 2 3 4 5 6 7 8 9 10 ...
$ a : int 3 3 6 3 2 6 6 2 3 8 ...
$ b : int 6 8 4 8 7 8 4 2 6 7 ...
$ c : num 0.3411 0.6107 -0.415 0.6107 -0.0392 ...
> str(AA)
'data.frame': 50000 obs. of 3 variables:
$ a: int 3 3 6 3 2 6 6 2 3 8 ...
$ b: int 6 8 4 8 7 8 4 2 6 7 ...
$ c: num 0.3411 0.6107 -0.415 0.6107 -0.0392 ...
もしくは(こちらの方が直感的でわかり易い?)
> ed <- merge(cbind(e,Ord),d)
> str(ed)
'data.frame': 50000 obs. of 4 variables:
$ a : int 1 1 1 1 1 1 1 1 1 1 ...
$ b : int 1 1 1 1 1 1 1 1 1 1 ...
$ ord: int 32810 46779 23088 6441 17984 15437 12878 47...
$ c : num -0.626 -0.626 -0.626 -0.626 -0.626 ...
> ed[order(ed$ord),][,-3] # 上のAAと同じもの
**関数"pls"を見つけることができませんでした [#pc7ee0b4]
>[[学生]] (2010-08-26 (木) 22:48:35)~
~
RでPLSを行おうとして追います。~
PLSパッケージをインストールし,読み込んでも,「関数"PLS"...
Rになれるための練習として,インターネット「岩田先生のPLS...
何卒よろしくお願い致します。~
//
- あなたがどのようにやったのか,コンソールの表示をペース...
pls パッケージは,"Partial Least Squares Regression (PLSR...
具体的には以下のようにします。 -- [[河童の屁は,河童にあ...
> library(pls) # pls パッケージを使うために
次のパッケージを付け加えます: 'pls'
The following object(s) are masked from 'package:stats':
loadings
> plsr(foo, ...) # plsr というのが,あなたが使いたい関数...
- 早速,ご回答,ありがとうございます。plsは小文字で打って...
- 以下にコンソールの表示をペースト致します。 -- [[学生]] ...
> wine <- read.table("wine.txt")
> Y <- scale(wine[,1:3])
> X <- scale(wine[,4:7])
> library(pls)
次のパッケージを付け加えます: 'pls'
The following object(s) are masked from 'package:stats':
loadings
> wine.pls <- plsr(X, Y, 1:3, validation="CV")
以下にエラー formula.default(object, env = baseenv()) : ...
- あなたは最初「関数"PLS"を見つけることができませんでした...
> library(pls)
> wine <- read.table("wine.txt")
> Y <- scale(wine[,1:3])
> X <- scale(wine[,4:7])
> wine.pls <- plsr(Y~X, 3, data=wine)
> summary(wine.pls)
Data: X dimension: 5 4
Y dimension: 5 3
Fit method: kernelpls
Number of components considered: 3
TRAINING: % variance explained
1 comps 2 comps 3 comps
X 70.45 98.35 100.0
Hedonic 70.53 70.71 100.0
Goes_with_meat 93.74 98.51 100.0
Goes_with_dessert 25.72 86.97 87.5
> coefficients(wine.pls, ncomp=2)
, , 2 comps
Hedonic Goes_with_meat Goes_with_dessert
Price -0.27140847 -0.2525422 0.01880366
Suger 0.06339537 0.3206223 0.78764141
Alcohol 0.28567521 0.3619657 0.27127454
Acidity 0.30722143 0.3730769 0.24272634
- 河童の屁さん,ご回答,ありがとうございました。おかげさ...
> R574 <- read.csv("R574.txt")
> Y <- scale(R574[,9:10])
> X <- scale(R574[,5,8])
> R574.pls <- plsr(Y~X, 3, data=R574)
以下にエラー mvr(Y ~ X, 3, data = R574, method = "kernel...
Invalid number of components, ncomp
- コンソールをペーストする方法も学びましょうね。~
本筋とは関係ないですけど,"scale(R574[,5,8])" というのは...
また,今後いろいろやっていく上で,エラーメッセージをみて...
Invalid number of components, ncomp と書いてあるのですか...
どういう風に invalid なのか,正しくはどのような値を指定し...
お手本にあるものをそのまま引き写してやるのでは,だめなこ...
? plsr でオンラインヘルプを参照するのが一番最初にやるべき...
R574 がどんなものなのかについて何の情報もないので,これ以...
- 河童の屁さん,度々ご回答ありがとうございました。Rを学ん...
**図の軸の数値が指数表示になる [#c8b48ce8]
>[[ま]] (2010-08-26 (木) 16:50:23)~
~
図を作成した際に,x軸やy軸に添えられる数字が指数表示(1e-...
//初歩的な質問ですが,
何卒よろしくお願い申し上げます。~
//
- 「自動的になります」というのは,そのようにした方が良い...
また,例えば数値が1,000,000のオーダーの場合などである場合...
あなたが実際に描いた例を見れば,適切な対処法が示されるこ...
- 手っ取り早いのは,options関数でscipenをいじる方法 -- [[...
scipen.org <- getOption('scipen')
x <- seq(0, 0.001, 0.0001)
plot(x)
options(scipen=10)
plot(x)
options(scipen=scipen.org)
- 河童さま,surgさま,ご教示ありがとうございます。そこま...
**DEAの線形計画問題について [#na63d5bb]
>[[atsuo]] (2010-08-23 (月) 11:52:39)~
~
//初心者です。基本的なことですみません。質問させてくださ...
optimやconstrOptimで解決できないかと、あれこれやってみた...
//私の力不足で、解決できていません。~
以下の線形計画問題を解決したいのです。~
~
� 2*θ−2*λ[1]−2*λ[2]−1*λ[3] >= 0~
� 1*θ−1*λ[1]−2*λ[2]−2*λ[3] >= 0~
� 1 −1*λ[1]−1*λ[2]−1*λ[3] <= 0~
� λ[1]+λ[2]+λ[3] >= 1~
� λ[1]>=0~
� λ[2]>=0~
� λ[3]>=0~
� �〜�の条件を満たし、θを最小にする...
~
欲しいのはθの値とλ[1]、λ[2]、λ[3]の値です。~
これはDEA分析なのですが、パッケージのFEARでも準備されてい...
//基本的な質問で申し訳ありません。よろしくご教授お願い申...
//ちなみに
環境は、R2.11.1です。OSはWindows7 です。~
//
- モンテカルロシミュレーションによると,λ1=1, λ2=λ3=0 の...
> sim <- function(trial=10000, mx=1)
+ {
+ count <- 0
+ min.theta <- 10000
+ while(TRUE) {
+ lambda <- runif(3, min=0, max=mx) # 一様乱数発生 条...
+ if (sum(lambda) >= 1) { # 条件(4)
+ theta <- max(lambda%*%c(1, 1, 0.5), lambda%*%c(1, 2...
+ if (theta < min.theta) { # それまでに見つかったもの...
+ cat(theta, lambda, "\n")
+ min.theta <- theta # 見つかった解の候補で更新
+ ans <- c(theta, lambda)
+ count <- 0 # 空振り回数の更新
+ }
+ else {
+ count <- count+1 # 空振りが以下の回数続けば現在の...
+ if (count > 1000000) return(ans)
+ }
+ }
+ }
+ }
> (ans <- sim()) # 出力は順に,θ,λ[1],λ[2],λ[3]
2.961947 0.9688506 0.2850662 0.711482
2.460659 0.9278959 0.2115464 0.5548352
1.890355 0.7575402 0.4784459 0.08796157
1.857158 0.2751631 0.7211324 0.06986522
途中省略
1.030237 0.9743367 0.00815206 0.01979813
1.029195 0.9880413 0.004979686 0.01559721
1.023945 0.9964487 0.005063805 0.008684346
[1] 1.023944978 0.996448677 0.005063805 0.008684346 # こ...
> # 念のために条件のチェック
> 2*ans[1]-2*ans[2]-2*ans[3]-ans[4] >= 0 # (1)
[1] TRUE
> ans[1]-ans[2]-2*ans[3]-2*ans[4] >= 0 # (2)
[1] TRUE
> sum(ans[2:4]) >= 1 # (3), (4)
[1] TRUE
> all(ans[2:4] >= 0) # (5), (6), (7)
[1] TRUE
- 問題が正しいとすれば,これは紙と鉛筆で解ける問題です....
- ちょっと違う。λ[2]=0 のとき,λ[1],λ[3],θは図のように...
&ref(3dplot.png);
- 河童さま、ご教示ありがとうございます。モンテカルロシミ...
- 正式表記は「河童の屁は,河童にあらず,屁である。」ですが(...
どの方法(関数)がよいか,どういうふうに使うのかなどは,私...
**GARCHの解釈 [#ied3a736]
>[[z]] (2010-08-20 (金) 22:42:44)~
~
Coefficient(s)や、Hessian Matrixに標示される、muやomegaの...
例) Coefficient(s):~
mu ar1 ma1 omega alph...
//
- 次々に質問するより,少しは自分で調べれば良いと思います...
一般的にはオンラインヘルプ,パッケージによっては vignet ...
なお,コメントの付け間違いを自分で消去するとか,行の先頭...
- なるほど。一応、Referenceに出ていたテキスト数冊とOnline...
- > Referenceに出ていたテキスト数冊とOnline help(JpとEnサ...
すごいですね。全部見たけどなかったんですか。「muやomegaの...
「mu や omega とは何か」というのではないのでしょうね?~
GARCH と一言で言っても関連パッケージも関数もいろいろある...
とか,書いてあるようですが。~
まあ,あなたがどういう情報を欲しているのかがわからないの...
なお,「最後に出てくるはずのギリシャ文字が、αの前に出てき...
&ref(omega-alpha.png);~
みたいに使われるようなので,辞書順でなく,式の中での出現...
なるほど、貴重なアドバイスを有難うございます。出てきたGar...
テキストを見比べて、自分で式を考えてみたのですが、なかな...
アドバイス頂けると幸いです。宜しくお願い致します。
(fgarchはうまくInstallできなかったため、そちらのマニュア...
ご丁寧にアドバイスをいただいて、有難うございました。)-- [...
**Rのインストールで,メッセージ言語が文字化け [#g5a8a802]
>[[rの初心者]] (2010-08-20 (金) 16:28:28)~
~
//はじめまして。Rについては右も左もわからない初心者です。
とあることでRを用いて多変量解析を行う必要が生じまして、...
//何分素人ですのでわかり易く教えて頂ければ幸いです。
よろしくお願いします。~
//
- 中澤先生の[[統計処理ソフトウェアRについてのTips:http://...
- 回答どうも有り難うございます。解決しました。またよろし...
**TARCH has not been available? [#lcff7c27]
>[[z]] (2010-08-20 (金) 14:29:41)~
~
RでTARCH(Threshold GARCH)をLoopで100社*10年分行おうと...
RでTARCHするのと同じ結果を得られる機能がございましたらご...
宜しくお願いします。~
//
- 自己解決しました。まだベータ版までしか提供されていない...
参照: http://r-forge.r-project.org/projects/rregarch/~
どなかた、その後のUpdateをご存知でしたら、ご案内頂けると...
**forループのリストにベクトルを使ってはいけないのでしょう...
>[[青葉ほととぎす]] (2010-08-20 (金) 14:18:14)~
~
最近、Rでプログラムを始めたものです(Vistaでversion 2.10....
あるプログラムを作っているときに不可解な結果がでて、いろ...
~
以下は、問題の部分だけを抜き出したものです。~
~
初め実験1を行っていたのですが問題があり、実験2のように書...
sim.rate <- seq(0, 1, by=0.01)
result.matrix <- matrix(0, nrow=length(sim.rate), ncol=2)
# 実験1
for(i in sim.rate)
{
result.matrix[i*100, 1] <- result.matrix[i*100, 1]+1
}
# 実験2
for(i in 1:length(sim.rate))
{
result.matrix[i, 2] <- result.matrix[i, 2]+1
}
この2つは以下のような異なる結果を出します。
[,1] [,2]
[1,] 1 1
中略
[27,] 1 1
[28,] 2 1
[29,] 0 1
[30,] 1 1
中略
[56,] 1 1
[57,] 2 1
[58,] 0 1
[59,] 1 1
中略
[95,] 1 1
そこで質問ですが、forループのリストしてベクトルを使っては...
//
- for ループのリストとしてベクトルを使っても,何の差し支...
まず,sim.rate は 0.00 から 1.00 まで 0.01 刻みで 101 個...
> result.matrix[0, 1]
numeric(0)
もう一つは,i は sim.rate という実数値をとるので,0.05*10...
> sim.rate[26:32]
[1] 0.25 0.26 0.27 0.28 0.29 0.30 0.31
> as.integer(sim.rate[26:32]*100)
[1] 25 26 27 28 28 30 31
ようするに,コンピュータの中での実数は(整数値や,2 進数...
実数の計算結果を整数が期待される場所(添え字など)に使っ...
> s <- 0
> for (i in 1:100) s <- s+0.01 # 0.01 を 100 回足し込む
> s # 結果を書いて見ると
[1] 1 # ちゃんと 1 になっているように見えますが
> s == 1 # 1 と等しいかどうか見てみると
[1] FALSE # 1 とは等しくないということがわかります
- とてもわかりやすい解説ありがとうございます。近似値であ...
**Windows7 Home Premiumで最新のRインストールできず [#h41e...
>[[ななしのごんべ]] (2010-08-12 (木) 19:53:54)~
~
Windows7 Home Premiumで最新のRを入れたら、パッケージがイ...
//
- 上の質問者です。igraphパッケージだったのですが、古いバ...
- igraphパッケージはver.0.5.4からiconv.dllが必要になった...
- igraphをver.0.5.4-1にバージョンアップすれば問題ないよう...
**積分した値が計算に使えない [#ma80c2c0]
>[[しょーじん]] (2010-08-11 (水) 14:36:14)~
~
積分した値を計算に使おうと思ったところ,「二項演算子の引...
その値自体を調べると「0.5 with absolute error < 5.6e-15」...
計算に使うためにはどうしたらよいのでしょうか?~
//
- こんなことなのでは? -- &new{2010-08-11 (水) 21:17:53};
> x <- integrate(dnorm, -1.96, 1.96)
> x
0.9500042 with absolute error < 1.0e-11
> x + 2
以下にエラー x + 2 : 二項演算子の引数が数値ではありませ...
> str(x)
List of 5
$ value : num 0.95
$ abs.error : num 1.05e-11
$ subdivisions: int 1
$ message : chr "OK"
$ call : language integrate(f = dnorm, lower = -...
- attr(*, "class")= chr "integrate"
> x$value
[1] 0.9500042
> x$value + 2
[1] 2.950004
- 例えば,integrate 関数の結果を a という変数に付値(代入...
- ありがとうございました.解決しました. -- [[しょーじん]...
**単回帰のデータが認識されない? [#ca069d07]
>[[z]] (2010-08-07 (土) 23:56:43)~
~
OLSを試みています。~
推計式はComp1=α+βcomp0なので、以下の要領で、Syntaxを書...
--Syntax-----
Result1<-lm(comp1~comp0)
--error--------
Error in eval(expr, envir, enclos) : object 'comp1' not ...
利用しているデータは下記の要領で、Comp0-90 まで、Dayは1-1...
day comp0 comp1 comp2 comp3 ...
1 -0.010873538 -0.017208413 0.009237875 0.00000000...
2 0.007344111 -0.001945525 -0.010297483 0.01331360...
3 0.016795163 0.031189084 -0.019653179 0.00291970...
4 0.006113627 0.003780718 0.004716981 0.01018922...
5 -0.002080986 -0.007532957 0.011737089 0.01008645...
6 0.005460344 0.001897533 -0.012761021 -0.02139800...
Comp2以降はLoopでの処理を試みる予定なのですが、Comp1につ...
//初歩的な質問が続いて申し訳ありませんが、ご教示頂けます...
//
- > 式は間違っていないようなのにエラーが出るので、調べ方...
間違えているからエラーが出るのです。謙虚にオンラインヘル...
lm の使い方として,lm(formula, data ... と書かれているで...
Syntax とか Loop とか,SPSS ユーザかと思いますが,速く R ...
>「Comp2以降はLoopでの処理を試みる予定なのですが」と書い...
a <- vector(mode="list", length=90)
for (i in 3:92) {
a[[i-2]] <- lm(d[, 2] ~ d[, i]) # このような使い方のと...
}
また,投稿の仕方(投稿書式)についても確認してください。...
誰でも初心者の時期はあるのですが,初心者だから至らない部...
なんらかの反応があってからと思っていましたが,音沙汰なし...
b <- lapply(paste("comp", 1:90, sep=""), function(x) lm(...
- たぶん下のスレッドと同じ質問者だと思いますが lm(comp1~c...
lm構文については、Suggestionを頂いた通りに実行して、うま...
色々試してはいるのですが、うまくいかないので、引き続き、T...
- 初心者なりにBestを尽くしたのですが、至らず、すみません...
lm構文については、Suggestionを頂いた通りに実行して、うま...
例えば、~
for (i in comp1: comp90){lm(d[,0]~d[,i])}
としてみたのですが、以下のようなErrorが出ました。 -- [[z]...
> for (i in 1:90) {
+ lm(d[, 0] ~ d[, i])
+ }
Error in eval(expr, envir, enclos) : object 'd' not foun...
> for (i in 3:92) {
+ lm(result1[, 0] ~ result1[, i])
+ }
Error in result1[, 0] : incorrect number of dimensions
> for (i in comp1:comp89) {
+ lm(result1[, 0] ~ result1[, i])
+ }
Error: object 'comp89' not found
> for (i in comp1:comp3) {
+ lm(result1[, 0] ~ result1[, i])
+ }
Error in result1[, 0] : incorrect number of dimensions I...
Warning messages:
1: In comp1:comp3 : numerical expression has 150 eleme...
2: In comp1:comp3 : numerical expression has 150 eleme...
> lm(result1[, 0] ~ result1[, i])
- でたらめにやってもダメです。~
for (i in comp1: comp90){lm(d[,0]~d[,i])}では,i は com...
それと,「Comp1をComp0で回帰、Comp2をComp1 で回帰、Comp3...
以下では,上に示した要素(day, comp0, comp1, comp2, comp3...
a <- vector("list", length=4) # lm の結果は list なので...
for (i in 3:6) { # i は順に 3, 4, 5, 6 をとる
a[[i-2]] <- lm(d[, i] ~ d[, i-1]) # i=3 のとき,a[[1]] ...
}
a
# function には順に 1, 2, 3, 4がわたされ,
# lm(eval(parse(text="comp1")) ~ eval(parse(text="comp0"...
# 最終的には lm(comp1 ~ comp0, data=d) が実行される "com...
b <- lapply(1:4, function(i) lm(eval(parse(text=sprintf(...
eval(parse(text=sprintf(...
b
# lapply っていったって,for とそうは変わらないのだ
C <- vector("list", length=4)
for (i in 1:4) {
C[[i]] <- lm(eval(parse(text=sprintf("comp%i", i))) ~
eval(parse(text=sprintf("comp%i", i-...
}
C
それぞれの関数の引用について,なにをやっているのかを確認...
回答方法について色々言う(後は自分で調べてとか,偉そうに...
> a <- vector("list", 10)
> class(a) # vector は第一引数で指定するオブジェクトを
[1] "list"
> length(a) # 第二引数で指定する個数分用意する
[1] 10
> a[[2]] <- c(1, 3, 5) # リストの2番目の要素に付値(代入...
> a[[2]] # 結果を表示してみる
[1] 1 3 5
> parse(text="comp1")
expression(comp1) # comp1 が作られるが,それは expressio...
attr(,"srcfile")
<text>
> comp1 = "test dummy" # 例えば comp1 が "test dummy" と...
> eval(parse(text=sprintf("comp%i", i)))
# これは,comp1 ということになり,それを print で表示す...
[1] "test dummy"
> print(eval(parse(text=sprintf("comp%i", i)))) # 上と同じ
[1] "test dummy"
これくらい冗長に書けばよいかな? -- [[河童の屁は,河童に...
- 混乱したままの質問を投げてしまったのに、親切丁寧にコメ...
- 上記の結果を使って下記のようにgqtestをしてみたのですが...
gqt<-lapply(1:88, function(i){
gqtest( lapply(1:88, function(i){
lm(eval(parse(text=sprintf("comp%i", i))) ~ eval(par...
}), data= dataset,fraction=50, order.by=NULL) })
Error in terms.default(formula) : no terms component
どうアレンジしたら良いのでしょう? 調べ方等、アドバイス...
宜しくお願い致します。 -- [[z]] &new{2010-08-31 (火) 19:...
- ページが横に伸びて見づらかったため、勝手ながらコードの...
**+が勝手に出て、構文が使えない。 [#x363e4bc]
>[[z]] (2010-08-07 (土) 21:47:40)~
~
//初歩のしにもならないような質問で恐縮ですが、
二進も三進も行かず、困っています。データを読み込む行はエ...
例えば、下記のようになります。
dataset<-read.csv("C:/Users/(myname)/Documents/(folderna...
+ attach (dataset)
+
//
- read.csv(file=file.choose()) として、ダイアログから選ん...
- うまくいきました =) 有難うございます! -- [[z]] &new{...
- .csv の次の二重引用符が " でなくて ” ですね。read.csv("...
**行列データの要素計算方法について [#ia642c93]
>[[森の熊五郎]] (2010-08-05 (木) 16:21:03)~
X <- c(0.1, 0.2, 0.3, 0.4)
Y <- c(0.3, 0.5, 0.8, 0.5)
Z <- c(0.6, 0.5, 0.7, 0.9)
sum(X)
sum(Y)
A <- rbind(X, Y)
sum(A)
sum(Z)
B <- rbind(A, Z)
sum(B)
この式を繰り返し文 forを使って実行する方法を知りたい。~
~
BASICでは例えば、A(20,10)の各要素を足し算する方法として
S=0
for I=1 to 20
for J=1 to 10
S=S+a(i,j)
next
next
なる文にて計算が出来ますが、Rの場合、内側のループはsum文...
//
- なぜそのようなことをしたいのかはさておき、rbind 関数を ...
A <- matrix(1:16, nrow=4, ncol=4)
B <- matrix(1:20, nrow=4, ncol=5)
nrA <- nrow(A)
ncA <- ncol(A)
ncB <- ncol(B)
S <- matrix(NA, nrow=nrA, ncol=ncA+ncB)
for (i in 1:nrA) {
for (j in 1:ncA) S[i,j] <- A[i,j]
for (j in 1:ncB) S[i,j+ncA] <- B[i,j]
}
# もし一重ループなら
S <- matrix(NA, nrow=nrA, ncol=ncA+ncB)
for (i in 1:nrA) {
S[i,1:ncA] <- A[i,]
S[i,ncA+1:ncB] <- B[i,]
}
- 質問文が意味不明~
sum(X) とか sum(A) とか,なにやっているんでしょうか。やり...
一般的には,「○○を使って□□をやりたい」というのではなく,□...
rbind を for でやるという意味じゃないんでしょ?もしそうだ...
a <- rbind(X, Y, Z)
S <- 0
for (i in 1:nrow(a)) {
for (j in 1:ncol(a)) {
S <- S+a[i, j]
}
}
print(S)
# 内側のループはsum文で というへんな要望に答えるなら
a <- rbind(X, Y, Z)
S <- 0
for (i in 1:nrow(a)) {
S <- S+sum(a[i, ])
}
print(S)
# でもそんなことする必要もなくて
a <- rbind(X, Y, Z)
S <- sum(a)
print(S)
# rbind する必要さえなくて
print(sum(c(X, Y, Z)))
# どれも,あなたのプログラムの最後に sum(B) としたのと同...
# それともまさか,
S <- 0
for (i in c("X", "Y", "Z")) {
S <- S+sum(eval(parse(text=i)))
}
print(S)
# または
S <- 0
for (i in c(X, Y, Z)) {
S <- S+sum(i)
}
print(S)
# みたいなのをお望みで?まさかね〜
**memory.limiitについて [#w678e628]
>[[yoshi]] (2010-08-02 (月) 14:56:40)~
~
memory.limit()について質問です。~
R上で~
> memory.limit()~
[1] 1535~
> memory.limit(T)~
[1] 12~
> memory.limit(F)~
[1] 10~
となります・ここで~
> memory.limit(4000)~
[1] 4000~
とした後は~
> memory.limit()~
[1] 4000~
> memory.limit(T)~
[1] 12~
> memory.limit(F)~
[1] 10~
となります。ここで質問なんですが「memory.limit()」「memor...
//
- 付け足しですが、私が使っているパソコンはWindows 7 Profe...
- ? memory.limit してみなさい。 -- [[河童の屁は,河童にあ...
**パッケージ「R.huge」の読み込み方法 [#ub1df349]
>[[yoshi]] (2010-08-02 (月) 10:49:35)~
~
パッケージ「R.huge」のパッケージの読み込みが上手くいきま...
私がやったことは~
�CRANミラーサイトから「R.huge」のzipファイルをダウ...
�RのGUIで「ローカルにあるzipファイルからのパッケー...
→RのGUI上では「パッケージ 'R.huge' は無事に開封され、MD5 ...
�RのGUIで「パッケージの読み込み」で「R.huge」を選...
→RのGUI上で「要求されたパッケージ R.oo をロード中です ~
エラー: パッケージ 'R.oo' をロードできませんでした ~
追加情報: 警告メッセージ: ~
In library(pkg, character.only = TRUE, logical.return =...
'R.oo' という名前のパッケージはありません 」と表示
~
このように�までは良いと思うのですが、�でエ...
~
これを解決する方法を自分でも探したのですが分らなかったた...
//
- R.huge は R.oo に依存します.R.oo はインストールしてあ...
- そーいうことだったんですね汗 R.hugeを読み込むことがで...
- 全部書く前に挿入してしまいました。 「R.huge」は読み込...
- 書き込み整理してください -- &new{2010-08-02 (月) 20:15...
**2進数表記した時、右から数えて最初にゼロが出現する桁数 ...
>[[aMC]] (2010-08-01 (日) 06:07:54)~
~
たとえば、2→10なので1桁目、5→101なので2桁目、7→0111なので...
//
- 下の応用。which(intToBits(7)==0) [1] など。内部ではルー...
- 反応がないようですが,反応を待つよりは自分で書いた方が...
> i2b <- function(x)
+ {
+ res <- integer(32)
+ for (i in 1:32) {
+ res[i] <- x %% 2
+ x <- x %/% 2
+ }
+ return(rev(res))
+ }
> b2i <- function(x)
+ {
+ return(sum(x*2^(31:0)))
+ }
> (a <- i2b(615729635))
[1] 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1...
> (b <- b2i(a))
[1] 615729635
> which(rev(a)==0)[1]
[1] 3
繰り返しておきますが,このプログラムが効率が悪いと言って...
- ありがとうございます。すっきり書けるようになりました。 ...
- このようなのはどうでしょう。 -- [[柳]] &new{2010-08-03 ...
cnt <- function(vector) {
x <- abs(vector)
z <- x * 0 + 1
times <- max(floor(log(max(x), 2)), 0)
for(i in 1:times) {
y <- x
x <- x * 0 - 1
x <- x + (y %% 2 != 0) * (y + 1) / 2
z <- z + (x != -1)
}
return(z)
}
- 投稿の作法を学びなさい(ちゃんと対応しないから,柳君の...
- f<-function(x){(1:32)[!as.logical(intToBits(x))][1]} --...
- もう一つ別解を。これは二進法でn桁目が0なら2^(n-1)で割っ...
> foo <- function(x){a <- ceiling(log2(x));
suppressWarnings(min(which((floor(x/2^(0:(a-1...
> foo(1*2^5+1*2^4+1*2^3+1*2^2+1*2+1)
[1] Inf
> foo(1*2^5+1*2^4+1*2^3+1*2^2+0*2+1)
[1] 2
> foo(1*2^5+1*2^4+1*2^3+1*2^2+0*2+0)
[1] 1
> foo(1*2^5+1*2^4+1*2^3+0*2^2+1*2+1)
[1] 3
> foo(1*2^5+0*2^4+1*2^3+0*2^2+1*2+1)
[1] 3
> foo(1*2^5+0*2^4+1*2^3+1*2^2+1*2+1)
[1] 5
**b進展開(10進数→2進数、2進数→10進数)関数 [#d970a...
>[[qMC]] (2010-07-31 (土) 22:56:24)~
~
10進数→2進数、あるいは2進数→10進数へと変換する関数...
//
- intToBits および packBits -- [[河童の屁は,河童にあらず...
**Rscriptでコードを実行するとグラフに文字化けが発生 [#ic3...
>[[りりぽん]] (2010-07-31 (土) 11:56:57)~
~
Rscriptで次のように、test.Rを実行させると、グラフタイトル...
###### test.bat ###################
C:\R-2.11.1-x64\bin\Rscript test.R
####### test.R ####################
postscript(file="test.eps", horizontal=F, family="Japan1...
plot(1:10, main="日本語")
dev.off()
###################################
使用フォーマット・R環境:
ソースコード;UTF-8(BOMなし)エンコード
コマンドプロンプト;cp932;MSゴシック
R version 2.11.1 (2010-05-31)
x86_64-pc-mingw32
locale:
[1] LC_COLLATE=Japanese_Japan.932 LC_CTYPE=Japanese_Jap...
[3] LC_MONETARY=Japanese_Japan.932 LC_NUMERIC=C
[5] LC_TIME=Japanese_Japan.932
//
- 64ビット版ですか。私には追試できませんでした。少なくと...
- 問題継続中ですが、追試いただきありがとうございました。 ...
**forを使って変数を作成したい [#a20ae84b]
>[[basel_firb]] (2010-07-29 (木) 15:18:47)~
~
過去に「行列にfor文中の変数を含んだ名前をつける 」という...
~
データフレームに、変数var1 var2 var3・・・var68というのが...
//
- 多くの場合 eval(parse(text=...)) は不要です。データフレ...
h <- (d/d[,-68])[,-68]
colnames(h) <- paste("h", 1:67, sep="")
で十分です。 -- [[河童の屁は,河童にあらず,屁である。]] ...
- ありがとうございます。よくわかりました。 -- [[basel_fir...
- 横から初心者の質問をさせて下さい。h <- (d/d[,-68])[,-68...
- そうですね -- [[河童の屁は,河童にあらず,屁である。]] ...
- お返事ありがとうございます。ちょっとエラーが出たり,違...
**Rのメモリ使用量 [#za198dff]
>[[sano]] (2010-07-29 (木) 12:39:07)~
~
こんにちは、hclustで階層的クラスタリングを行おうとすると、
サイズ 3.4 Gb のメモリブロックを割り当てることができませ...
とエラーメッセージが出てしまいます。~
OSはwindows7,Rのversionは version 2.11.1(64bit), メモリ...
> memory.limit(T)
と実行すると、
[1] 7363
と表示されるので、Rが物理メモリを7GBしか、OSから割り当て...
30GB割り当ててもらおうと、
> memory.limit(30000)
と入力すると、
[1] 49149
警告メッセージ:
In memory.size(size) : メモリー限界を減らすことができま...
と表示され、うまくいきませんでした。~
CPUがデュアルCPUでメモリを片側24GBずつ積んでいるのですが...
いろいろ調べてみたのですが、どうにもいかず、投稿させて頂...
お教えいただければ、幸いです。よろしくお願い致します。~
//
- 申し遅れました。hclustは3万×3万の距離行列を入力としてい...
- FAQ のようですけど。[[Windows版RのFAQ 2.7 R が使うメモ...
大元は[[R for Windows FAQ:http://cran.r-project.org/bin/w...
Version for R-2.11.1 と表題にあり,内容も少し違っているよ...
- ご回答いただき、ありがとうございます。> tmp<-diag(1,463...
- 3万だと, 私のマシンで2カ月ほど処理時間がかかると思いま...
- コメントありがとうございます。cluster packageのagnes関...
- たぶん,対象数の二乗に比例する時間が必要なので,1000,2...
- サンプル数3万ですと、プロットしても解釈できないので、cu...
- 72時間ほどで計算できました。hclustでエラーになりagnesで...
**T,Fを文字列として出力するには [#i20d18d0]
>[[sayaka]] (2010-07-26 (月) 11:59:13)~
~
いつも参考にさせていただいております。自分でも本やGoogle...
//本当に初歩的な質問で申し訳ありませんが、どうぞご教授よ...
~
以下のようなデータ"test_data.csv"があるとき
"T","T"
"T","F"
"T","T"
"F","F"
data <- read.csv("test_data.csv",header=F)
というようにread.csvを使ってデータを読み込むと、以下のよ...
> data
V1 V2
1 TRUE TRUE
2 TRUE FALSE
3 TRUE TRUE
4 FALSE FALSE
//非常に初歩的な質問で申し訳ありません。
どうぞよろしくお願い致します。~
//
- T,F はRでは特別な意味を持ちますから最初から使わないのが...
> data <- read.csv("test_data.csv",header=F)
> data
V1 V2
1 T T
2 T F
3 T T
4 F F
5 A A
> data[-nrow(data),]
V1 V2
1 T T
2 T F
3 T T
4 F F
> str(data[-nrow(data),]) # 因子水準に "A" が残りますが...
'data.frame': 4 obs. of 2 variables:
$ V1: Factor w/ 3 levels "A","F","T": 3 3 3 2
$ V2: Factor w/ 3 levels "A","F","T": 3 2 3 2
- 読み込んだ後,data <- sapply(data, function(x) ifelse(x...
- お二方、ご回答頂きありがとうございます。お二方のご回答...
- 追加コメント.河童さんのやり方は明快でお勧めですが,結...
> data <- read.csv("test_data.csv",header=F)
> is.data.frame(data)
[1] TRUE
> data <- lapply(data, function(x) ifelse(x, "T", "F"))
> is.data.frame(data)
[1] FALSE
> is.list(data)
[1] TRUE
> data <- as.data.frame(data)
> is.data.frame(data)
[1] TRUE
> data
V1 V2
1 T T
2 T F
3 T T
4 F F
- あなたは lapply を使ったので戻り値は list になりました...
- お二方、追加コメントありがとうございます。ちなみに、私...
- T, F 以外の文字列が含まれているものを read.table("ファ...
ちなみに,上の無名コメンテータのプログラム例だと,ご本人...
どんなプログラムを書いたのかなかなかアップできないようで...
ちびちびと小出しにするのではなく,聞きたいことをはっきり...
- コメントありがとうございます。小出しに質問してしまって...
T,T,A
T,F,A
T,T,A
F,F,A
fixTF <- function(x) {
if (is.logical(x)) {
return(ifelse(x, 'T', 'F'))
}else {
return (x)
}
}
data <- read.csv("test_data.csv", header=FALSE)
data1 <- lapply(data, fixTF)
data1 <- as.data.frame(data1)
data1
V1 V2 V3
1 T T A
2 T F A
3 T T A
4 F F A
以上のようにうまくいきました。もっとよく勉強します。あり...
- なるほど,T, F のある列は T, F だけなんですね。だったら...
- 重ねてコメントありがとうございます。質問が言葉足らずで...
**式が上手く評価されない? [#ede0fcf9]
>[[em]] (2010-07-21 (水) 01:30:51)~
~
runif()関数を使って一様乱数を生成し、0〜100の範囲に変換し...
x <- round(runif(100), 2) * 100
ここで、7の出ている回数を調べようと
length(x[x==7])
とやると、実際にはベクトルxに7が含まれていても、0になって...
また、x[x==7]のような式の結果もnumeric(0)となってしまいま...
どこがまずいのでしょうか?~
//
- 見かけは整数でも実際は実数とみなされているからでしょう....
- 理由と対処法は上のコメントの通りです。length(x[as.integ...
また,このようなことを避けるため,整数の一様乱数を生成す...
- お二方、ご回答有難うございます。 なるほど内部では実数...
- 本来は,コンピュータ上での実数は近似値に過ぎません。た...
> x <- 0
> for (i in 1:100) x <- x+0.01
> x # x を表示させると 1 になっているけど
[1] 1
> x == 1 # 0.01 を 100 回足しても 1 にはなっていない
[1] FALSE
> (a <- round(0.0718*100))
[1] 7
> a == 7 # この場合は 7 だけど
[1] TRUE
> (b <- round(0.0718, 2)*100)
[1] 7
> b == 7 # このようにして得られた数値は 7 ではない
[1] FALSE
> all.equal(b, 7) # testing ‘near equality’ all.equal ...
[1] TRUE
> identical(b, 7) # being exactly equal
[1] FALSE
- 河童の屁は,河童にあらず,屁である。さん、追加の質問に...
**デンドログラムのデータNo.の表示指定 [#x638a0ac]
>[[hashiro]] (2010-07-18 (日) 16:50:49)~
~
「Rによる統計解析」を読みながらクラスター分析を行っていま...
エクセルで、194の変数、160行のデータです。~
R内に読み込んでデンドログラムまでは出来ました。~
この時、デンドログラム最下段には1〜160までのNo.が表示され...
この数字をエクセルのa列の文字で表示したいのです。~
plotの中にlabels= で指定すればいいみたいですが、指定の仕...
指定方法をどうか教えていただけませんか。~
//
- どのように指定したら、どのようなエラーが出たんでしょう...
- plot(ans, labels = f.xls[sheet1$a2:a161], hang=-1, cex=...
- 要素の指定方法で解決できました。ありがとうございました...
**相関ルールについて [#ze69c6ad]
>[[t_y]] (2010-07-16 (金) 10:57:30)~
~
//初心者なのでよろしくおねがいします。~
今現在相関ルール抽出のパッケージ「arules」を用いているの...
買い物バスケットで以下の例があるとします。
TID アイテム集合
1 {パン、牛乳}
2 {ハム、牛乳}
3 {ビール、たばこ}
このデータを「data」に代入します。
> data <- list(c("パン", "牛乳"), c("ハム", "牛乳"), c("...
そして transactions 形式のデータを「data.tran」に代入しま...
> data.tran <- as(data1, "transactions")
次に相関ルール「data.ap」に生成します
> data.ap <- apriori(data.tran)
生成された相関ルールは以下の 3 つです。
lhs rhs support
1 {パン} => {牛乳} 0.3333333
2 {ハム} => {牛乳} 0.3333333
3 {ビール} => {たばこ} 0.3333333
相関ルールは lhs⇒rhs で「lhs が存在する場合に rhs が存在...
Support は「特定のルールの数÷全てのルール」です。例えば{...
~
ここでもしアイテム「パン」と「牛乳」が新たなアイテム「食...
属した場合の相関ルールの例を載せます
lhs rhs support
1 {食べ物} => {牛乳} 0.6666666
2 {パン} => {牛乳} 0.3333333
3 {ハム} => {牛乳} 0.3333333
4 {ビール} => {たばこ} 0.3333333
このように「食べ物」の中に「パン」と「ハム」が含まれてい...
しかし、data2 に以下のように代入し、
> data2 <- list(c(“食べ物”, ”牛乳”), c("パン", "牛乳"), ...
+ c("ビール", "たばこ”))
同様に相関ルールを作成すると、
lhs rhs support
1 {パン} => {牛乳} 0.25
2 {ハム} => {牛乳} 0.25
3 {ビール} => {たばこ} 0.25
4 {食べ物} => {牛乳} 0.25
のようになり support の値が変化してしまいます。~
これを解消する方法を教えて下さい。~
//
**SensomineRの分散分析でのエラー [#n06061a1]
>[[Sensory]] (2010-07-15 (木) 19:17:26)~
~
//お世話になります.Rも、プログラミングも完全に初心者です...
//~
分散分析を行うと出現するエラーについてです.R,Rcommander,...
~
何か解決策があれば教えて頂けないでしょうか.よろしくお願...
//
- なぜ,なかなか,回答が,得られないか。~
あなたが,何を,どうやったか,よくわからないからではない...
コンソールに入力したものをそのままコピーするだけでも,回...
私にはわからないけど,きっと他の誰かが答えてくれるでしょ...
**Rによる、SPSSファイルからSTATAファイルへの変換の仕方に...
>[[大学生]] (2010-07-12 (月) 20:25:01)~
~
//お世話になります。Rも、プログラミングも、完全に初心者の...
SPSSファイルを、STATAファイルに変換したいのですが。
library(foreign)
read.spss("datafile",use.value.labels=FALSE)
で、SPSSファイルを読み込んだあと、そのまま、STATAファイル...
~
Rのバージョンは2.8.1で、MACです。どうかよろしくお願いしま...
//
- 何となくのコメントで申し訳ないですが,あるアプリケーシ...
大多数のアプリケーションプログラムが共通して読み込めるデ...
というか,多くのアプリケーションプログラムは,他のアプリ...
そういうことが期待できないにしても,別に R が仲立ちをしな...
いずれの場合も,書き出された CSV を直接読み取るに当たって...
まずは,それぞれ(今の場合は SPSS とSTATA か)の機能(マ...
Stat/Transfer というデータ変換ソフト(有償)があるようで...
> Rのバージョンは2.8.1~
当面の問題には関係ないことですし余計なお世話ですけど,自...
- コメントありがとうございます。SPSSファイルを読み込める...
- このwikiを"stata"で検索してみてください。私はstataは使...
- library(foreign) write.dta(ここにRのデータフレーム名,f...
- > SPSSファイルを読んだ直後のフレーム名ってなんですか~
read.spss で読み込んで付値したデータフレーム名のことです...
データフレームに付値する必要がなければ,write.dta(read.sp...
- いろいろいじったらできました、ありがとうございました。 ...
**3次元グラフにおける座標点の表示 [#j4b52501]
>[[メジロウ]] (2010-07-09 (金) 21:24:59)~
~
マトリックスを3次元グラフで描画した時、x、y、zの座標まで...
~
x、y、zの座標点を取り除き、純粋に数値の座標点のみを頂...
~
打ち込んだコマンドラインは以下の通りです
jhin <-matrix(c(
1.1479, 0.8587, 0.8719,
-1.099, 0.353, 0.972,
-1.3226, -0.4005, -0.9295,
-0.4804, -0.7637, -1.3671,
-0.1707, -1.3382, 1.1815,
0.2106, 0.7653, -1.7421,
0.3761, 1.8047, 0.0608,
0.4473, -1.3014, 0.7972,
1.625, 0.7415, 0.5675,
1.5616, -0.7194, -0.4122),
nrow = 10, ncol = 3)
jhin
rownames (jhin) <- paste("in", 1:10, sep="")
colnames (jhin) <- c("X", "Y", "Z")
jhin
rg <-jhin
library(sna)
gplot3d(rg, thresh = 1.1, displayisolates = TRUE, suppre...
displaylabels = TRUE, xlab = "dimension 1",
ylab = "dimension 2", zlab = "dimension 3")
//
- 例としてあげられた jhin は三次元の座標が 10 組というこ...
- そうです。コマンドラインの上部にある10組の座標(jhin...
- コマンドラインを修正しました。しかし、頂点の数は変わら...
- そういうことを言っているのではなく,gplot3d は 3 次元空...
library(rgl)
x <- c(0,1,1,0,0,1,1,0)
y <- c(0,0,1,1,0,0,1,1)
z <- c(0,0,0,0,1,1,1,1)
library(scatterplot3d)
plot3d(x, y, z, size=20, col=2)
library(sna)
gplot3d(cbind(x, y, z))
> cbind(x, y, z)
x y z
[1,] 0 0 0
[2,] 1 0 0
[3,] 1 1 0
[4,] 0 1 0
[5,] 0 0 1
[6,] 1 0 1
[7,] 1 1 1
[8,] 0 1 1
&ref(plot3d.png);
- お返事ありがとうございます。立方体の頂点を表示したい訳...
- 別に立方体の頂点を表示したいわけでないのは重々承知して...
example にある,gplot3d(rgws(1,5,3,1,0)) をやってみても,...
rgws(1,5,3,1,0) は 125 × 125 の matrix で,描かれるのは 5...
「x、y、zの座標まで、グラフ内に頂点として表示されてしまい...
&ref(glid.png);
- 状況が伝わりづらくて申し訳ありません。私は10個の座標...
- なんだぁ。最初っからそういえばよいのに。jhin を使って例...
> library(sna)
> gplot3d((as.matrix(dist(jhin)) <= 1.1)+0)
&ref(jhin.png);~
(as.matrix(dist(jhin)) <= 1.1)+0 は,以下のような行列です...
> (as.matrix(dist(jhin)) <= 1.1)+0
in1 in2 in3 in4 in5 in6 in7 in8 in9 in10
in1 1 1 0 0 0 0 0 0 0 0
in2 1 1 0 0 0 0 0 0 0 0
in3 0 0 1 0 0 0 0 0 0 0
in4 0 0 0 1 0 0 0 0 0 0
in5 0 0 0 0 1 0 0 0 0 0
in6 0 0 0 0 0 1 0 0 0 0
in7 0 0 0 0 0 0 1 0 0 0
in8 0 0 0 0 0 0 0 1 0 0
in9 0 0 0 0 0 0 0 0 1 0
in10 0 0 0 0 0 0 0 0 0 1
ラベルをつけたりなんだらかんだらは自分でやってください。~
なお,見て分かるように,各点は jhin の三次元座標を使って...
たぶん,それは,あなたにとっては不本意でしょうが,そもそ...
- なぜあなたが gplot3d にこだわるのか分からないけど,三次...
library(rgl)
plot3d(jhin, type="s", col=4, radius=0.05)
text3d(jhin, text=1:10, adj=2)
d <- as.matrix(dist(jhin))
con <- which(d <= 1.5, arr.ind=TRUE)
apply(con, 1, function(xy) lines3d(jhin[xy,], lwd=3, col...
&ref(jhin2.png);~
jhin を例としましたが,見栄えをよくするため,距離が 1.5 ...
**Dataframeからある特定の因子を持つ行を抜き出したい [#z40...
>[[hello r]] (2010-07-09 (金) 15:46:59)~
~
ググッたり、ここのDatagram tipsを見たのですが、解決しなか...
~
CSVファイルから読み込んだファイルに因子が含まれています。~
t s
1 3755 sd
2 3840 sd
3 3856 si
4 3884 sd
5 4011 si
6 4031 sd
7 4033 sd
8 4115 sd
9 4147 si
10 4157 si
~
ここから因子ごとにdataframeを分離したいと考えています。~
因子でなければ~
v <- dataframe[,"s"] == "sd"
dataframeSD <- dataframe[v,]
などとして抽出できると思うのですが、最初の因子の比較がDat...
どのように対処すればよいでしょうか。~
もしよろしければご教授願えないでしょうか。~
よろしくお願いします。~
//
- データフレームを d とすれば,split(d, d$s) -- [[河童の...
- ありがとうございます。それでうまくプログラムを組めまし...
- あなたが上に書いたことをやってみなかったのですか?ちゃ...
> v <- dataframe[,"s"] == "sd"
> dataframeSD <- dataframe[v,]
> dataframeSD
t s
1 3755 sd
2 3840 sd
4 3884 sd
6 4031 sd
7 4033 sd
8 4115 sd
split を使う方法を示したのは,その方が汎用性が高いから。 ...
- ええと、私のやりかたがまずいのかもしれませんが、vが全て...
> v <- df[,2] == "si"
> v
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FAL...
- class(d[,2]) としたら何が表示されますか?私の場合は,fa...
> v <- d[,2] == "si"
> v
[1] FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE TR...
> class(d[,2])
[1] "factor"
**メトロポリス法によるパラメータ推定プログラムを自作する...
>[[Saito]] (2010-07-06 (火) 00:54:49)~
~
いつもお世話になっています。~
ググっても、過去ログを漁っても、持っている本を読んでも、...
都合により、メトロポリス法によるパラメータ推定プログラム...
~
set.seed(1)
iter <- 20000
###真の値###
a <- 10
b <- 2
x <- seq(0.01, 1, length=500)
y <- b*x + rnorm(500, a, 1)
###尤度の計算(!!!対数にはしていない!!!)###
cost_func2 <- function(a3, b3) {
sum(dnorm(y, a3 + b3*x, 1))
}
###乱数と初期値の設定###
u <- runif(iter, 0, 1)
u2 <- runif(iter, 0, 1)
a4 <- b4 <- numeric(iter+1)
a4[1] <- b4[1] <- 5
lag <- 4
###メトロポリス法(?)の実行###
for(i in 1 : iter) {
a4_2 <- a4[i] + runif(1, -lag, lag)
b4_2 <- b4[i] + runif(1, -lag, lag)
###一つ前のサンプルで計算されるcost_funcの値が近すぎると...
a4[i+1] <- ifelse(u[i] < cost_func2(a3=a4_2, b3=b4[i])/
cost_func2(a3=a4[i], b3=b4[i]),
a4_2, a4[i])
b4[i+1] <- ifelse(u2[i] < cost_func2(a3=a4[i+1], b3=b4_2)/
cost_func2(a3=a4[i+1], b3=b4[i...
b4_2, b4[i])
}
hist(a4[(iter/2):iter])
hist(b4[(iter/2):iter])
~
疑問点は二つです。メトロポリス法の場合でも、尤度を計算す...
もう一つの疑問は、メトロポリス法では、上記のように比を取...
~
このようなことを避けるにはどうすればよいのでしょうか。~
上記のプログラムですと、a4とb4の平均値がそれぞれ10と2にな...
~
どなたかわかる方がいましたら、ご教授のほどよろしくお願い...
なお、環境はWindows7, R-2.11.1です。~
//
- メトロポリス法については知らなかったのですけど,a4, b4 ...
以下のように修正するとそれらしき値が推定できますけど? --...
a4[i+1] <- ifelse(cost_func2(a3=a4_2, b3=b4[i]) > cost_f...
a4_2, a4[i])
b4[i+1] <- ifelse(cost_func2(a3=a4[i+1], b3=b4_2) > cost...
b4_2, b4[i])
:
> mean(a4)
[1] 10.05778
> mean(b4)
[1] 1.890743
- 早速の回答ありがとうございます。確かに、示してくださっ...
- 資料をもう一度よく読んでください。f(x)は尤度関数ではな...
- 回答ありがとうございます。ええと、尤度関数でなく確率密...
- 確率密度関数なので,負の値にはならないというのは了解で...
- 早速の返信ありがとうございます。確かに確率密度ですと負...
- sum(dnorm(y, a3 + b3*x, 1)) が尤度になるということにつ...
- ええと、クリティカルな参考書はありません。しかし、平均...
- なぜ確率密度関数の対数をとるのですか? 誤解を恐れずに簡...
- メトロポリス法で分布パラメータを推定するには二つの方法...
- > surgさん。なぜ・・・といわれると、確かに困りますね。...
likelihood <- 1
likelihood2 <- 0
cost_func2 <- function(a3, b3) {
for (i in 1 : length(y)) {
likelihood2 <- likelihood * dnorm(y[i], a + b*x[i], 1)
likelihood <- likelihood2
}
return(likelihood2)
}
などとして、対数を取らずに尤度の積を計算するようにしても...
- できれば、optimを使わず、自分で作りたいと思っています。...
- すみません、河童の屁は,河童にあらず,屁であるさん。あ...
- 何も分からないので教えてください。~
(1) sum(dnorm(y, a3 + b3*x, 1)) が尤度を求めるものだとし...
(2) 結果の後半だけ a4[(iter/2):iter] を使う理由は何でしょ...
- まず(1)ですが、確かに、このような線形回帰の場合、i.i.d...
二つ目は、初期値依存を消すためです。今回は適当に初期値4か...
- 最初の質問への返答です。条件 U < L1/L2 の対数版は log(...
- > 一様乱数 U は毎回新しいものを使うんですよ~
最初に必要なだけ生成してておいて,u[i] のように,毎回違う...
- おっとそうでした。最終的に何をしたいのかよく分かりませ...
- >U < L1/L2 の対数版は log(U) < log(L1)-log(L2) でしょ...
>(a_1,b_1) -> (a_2,b_2) のように一斉に変更するか、そのま...
>なぜデータが最初にでてくるのか分かりません。
いえ、単に線形回帰のパラメータ推定の際に、メトロポリスで...
- >なぜ尤度の計算をするときに対数化をするのか: 計算機に...
- >totoさん:対数化をするのは桁落ちを防ぐためなのですね...
- みなさんからの意見を加えて、このように改良致しました。...
set.seed(1)
iter <- 20000
###真の値###
a <- 10
b <- 2
x <- seq(0.01, 1, length=500)
y <- b*x + rnorm(500, a, 1)
###正規化定数抜きの事後分布の計算###
###桁落ちするので、log(exp(1))を加えて、必ず1以上の数を...
###マジメにa,bの事前分布を設定。真の値から平均を-1だけず...
cost_func2 <- function(a3, b3) {
sum(log(log(exp(1)) + dnorm(y, a3 + b3*x, 1)*dnorm(a3, a...
}
###乱数と初期値の設定###
u <- runif(iter, 0, 1)
u2 <- runif(iter, 0, 1)
a4 <- b4 <- numeric(iter+1)
a4[1] <- b4[1] <- 5
lag <- 4
###メトロポリス法の実行###
for(i in 1 : iter) {
a4_2 <- a4[i] + runif(1, -lag, lag)
b4_2 <- b4[i] + runif(1, -lag, lag)
###a, bは一斉に値を更新するように変更###
if (u[i] < cost_func2(a3=a4_2, b3=b4_2)/
cost_func2(a3=a4[i], b3=b4[i])) {
a4[i+1] <- a4_2
b4[i+1] <- b4_2
} else {
a4[i+1] <- a4[i]
b4[i+1] <- b4[i]
}
}
###a, bの事後分布###
hist(a4[(iter/2):iter])
hist(b4[(iter/2):iter])
> mean(a4[(iter/2):iter])
[1] 9.688851
> mean(b4[(iter/2):iter])
[1] 2.424549
しかし、やはり対数の比のところはそのままの問題が残ってい...
- Saitoさんが想定されているモデルだと,事後密度は,prod(d...
- 対数とはいえ、前の対数尤度と今回の対数尤度の比を取るの...
set.seed(1)
iter <- 20000
###真の値###
a <- 10
b <- 2
c <- 1
x <- seq(0.01, 1, length=500)
y <- b*x + rnorm(500, a, c)
###正規化定数抜きの事後分布の計算###
###マジメにa,b.cの事前分布を設定###
cost_func2 <- function(a3, b3, c3) {
sum(log(dnorm(y, a3 + b3*x, c3)*
dnorm(a3, a-1, 100)*dnorm(b3, b-1, 100)*dgamma(c...
}
###乱数と初期値の設定###
u <- runif(iter, 0, 1)
a4 <- b4 <- c4 <- numeric(iter+1)
a4[1] <- b4[1] <- c4[1]<- 5
lag <- 0.4
###メトロポリス法の実行###
for(i in 1 : iter) {
a4_2 <- a4[i] + runif(1, -lag, lag)
b4_2 <- b4[i] + runif(1, -lag, lag)
c4_2 <- c4[i] + runif(1, -lag, lag)
###a, b, cは一斉に値を更新するように変更###
if (log(u[i]) < cost_func2(a3=a4_2, b3=b4_2, c3=c4_2)-
cost_func2(a3=a4[i], b3=b4[i], c3=c4[i])) {
a4[i+1] <- a4_2
b4[i+1] <- b4_2
c4[i+1] <- c4_2
} else {
a4[i+1] <- a4[i]
b4[i+1] <- b4[i]
c4[i+1] <- c4[i]
}
}
###a, b, cの事後分布###
hist(a4[(iter/2):iter])
hist(b4[(iter/2):iter])
hist(c4[(iter/2):iter])
> mean(a4[(iter/2):iter])
[1] 10.07981
> mean(b4[(iter/2):iter])
[1] 1.872144
> mean(c4[(iter/2):iter])
[1] 0.9888237
おそらく、これで問題なくコードできたと思います。皆様、本...
- 繰り返しになりますが,cost_func2のsumが掛かる場所がおか...
- Log(A*B)=Log(A)+Log(B)なので、一緒ではないのですか?sum...
- 上記だと事前密度もデータの数だけ掛けられていることにな...
- ご参照ください.
> sum(dnorm(1:10, 0, 1, log = TRUE)) + dnorm(0, 0, 1, lo...
[1] -203.5273
> sum(log(dnorm(1:10, 0, 1)*dnorm(0, 0, 1)*dnorm(0, 0, 1...
[1] -220.0682
-- [[toto]] &new{2010-07-08 (木) 06:42:56};
- あぁ!sumの場所が後ろまでいってしまっていますね!sum(対...
- 全く別です.メトロポリスは候補発生の仕組みがランダムウ...
- totoさん、ありがとうございました。自分の勉強不足を痛感...
set.seed(1)
iter <- 20000
###真の値###
a <- 10
b <- 2
x <- seq(0.01, 1, length=500)
y <- b*x + rnorm(500, a, 1)
###正規化定数抜きの事後分布の計算###
###マジメにa,b.cの事前分布を設定###
cost_func2 <- function(a3, b3) {
sum(log(dnorm(y, a3 + b3*x, 1))) +
log(dnorm(a3, a-1, 100)) + log(dnorm(b3, b-1, 10...
}
###乱数と初期値の設定###
u <- runif(iter, 0, 1)
a4 <- b4 <- numeric(iter+1)
a4[1] <- b4[1] <-5
lag <- 0.4
###メトロポリス法の実行###
for(i in 1 : iter) {
a4_2 <- a4[i] + runif(1, -lag, lag)
b4_2 <- b4[i] + runif(1, -lag, lag)
###a, bは一斉に値を更新するように変更###
if (u[i] < exp(cost_func2(a3=a4_2, b3=b4_2)-
cost_func2(a3=a4[i], b3=b4[i]))) {
a4[i+1] <- a4_2
b4[i+1] <- b4_2
} else {
a4[i+1] <- a4[i]
b4[i+1] <- b4[i]
}
}
###a, b, cの事後分布###
hist(a4[(iter/2):iter])
hist(b4[(iter/2):iter])
> mean(a4[(iter/2):iter])
[1] 10.08433
> mean(b4[(iter/2):iter])
[1] 1.884697
分散パラメータが私の実力不足で上手くコードに含めることが...
**地理的加重回帰分析のgwrの予測値 [#k2631fd0]
>[[酔鯨]] (2010-07-03 (土) 10:33:29)~
~
spgwrの地理的加重回帰分析のgwrの予測値は、XXX$SDFのテーブ...
//
- prediction 引数の説明は読みました?~
predictions: default FALSE; if TRUE and no fit points gi...
それでは片付かない? -- [[河童の屁は,河童にあらず,屁で...
- 回答ありがとうございます。コロンバス市の犯罪データのCRI...
- 言葉足らずだったので説明を追加します。CRIMEは被説明変数...
- 「コロンバス市の犯罪データのCRIMEに空白の欄を設け計算し...
あなたと一緒に悩んでみようという人にとっては,あなたのや...
こうすればよいんですよという回答を持っている人も,あなた...
- 申し訳ありません。predictionsの意味はわかりませんが上の...
**Rによるアクセスログ解析 [#t7427dba]
>[[tadashi]] (2010-07-02 (金) 15:05:54)~
~
"Rでアクセスログ" と検索してもでてきません。Rでアクセス...
もし、awstats 等でやっているようなことをRで代替している...
//
- 検索語がまずいのね。"R * アクセスログ解析" と,指定して...
- なるほど参考になります。ABC分析もさがしてみます。 -- [[...
**統計解析関数Tipsのrepeated mesure aonovaのコード [#ee4f...
>[[ちゃーぴー]] (2010-07-02 (金) 10:04:01)~
~
RjpWiki内の統計解析Tipsにある反復測定分散分析 (Repeated m...
+ rownames(ttx)[rownames(ttx)=="Residuals"]<-sub...
エラー: "Error: (.*\)"で始まる文字列の中で '\)' は文...
~
//
- どうもすさまじいコピーペーストで,汚い上に余分な部分ば...
エラーメッセージを見れば対処法は分かると思います。
rownames(ttx)[rownames(ttx)=="Residuals"]<-sub("Error: (...
とすればよいのでしょう。 -- [[河童の屁は,河童にあらず,...
- ご教授ありがとうございました.m(_ _)m 投稿方法を再度確...
- おかげさまで,エラーは回避できたのですが,ひとつわから...
- そういうことがあり得るのかどうかは,たぶん数理的に説明...
問題は異なりますが,例えば,同じデータをノンパラメトリッ...
誰かに聞くというのは最も簡単な方法ですけど,自分で正しい...
- ご指摘・ご助言ありがとうございます.Ryan法のP値の調整方...
**Shaffer法の多重比較 [#u3fc5003]
>[[tasosi]] (2010-07-01 (木) 18:43:27)~
~
Shaffer法の多重比較に関するパッケージを探しています.~
色々調べてみたのですが,ANOVA君を活用するという手段はあっ...
多重比較で,paired-t-testのP値を補正するのに用いたいと思...
//
//- 「河童の屁は,所詮屁である。」さん。アドバイスありが...
- なんかね,別のスレッドが紛れ込んじゃって変なので,削除...
- まずは,コメントアウトしてと~
それなりに用意されているパッケージもあるかも知れないけど...
この関数の paired は,対応のあるデータという意味ではなく...
あ,でも,残念。対応のある場合の Sheffe には対応してない...
- SheffeではなくShaffer法なのですが,これは対応ありの場合...
- ああ。Shaffer でしたね。~
> False Discovery Rateという考え方がどこまで受け入れられ...
知らない人が「ば〜〜か」ということでよろしいのではないで...
- ありがとうございます.多重比較は色々な方法があって,諸...
**行列におけるNA値を前後の行の値から補完したい [#h6065635]
>[[R初心者]] (2010-07-01 (木) 14:27:54)~
~
はじめまして。~
ネットワークの研究をしている大学院生です。データのグラフ...
googleとこのwikiでググってみたのですが、分からなかったの...
環境はMacOSX 10.5.8~
Rのバージョンは2.9.0です。~
−−−−−−~
やろうとしていることの概要~
2つのプログラムからの出力をまとめた欠損値を持つCSVを、欠...
補完せずとも、線グラフが切れない手法があればそれでもOKで...
−−−−−−~
ネットワークのスループットとRTTをTcpdumpを解析して出力す...
time, seqnum(シーケンス番号), rtt, throughput
0.0, 3136068389, 0.0469200000006822,
0.0808820000020205, 3136070885, 0.061139999997976...
0.0999999999985448, , , 24960.0~
0.142041999999492, 3136074629, 0.0901450000019395...
0.142041999999492, 3136072133, 0.0699139999996987...
0.19999999999709, , , 37440.0
0.21197000000393, 3136077125, 0.0549669999963953,
0.232200999998895, 3136079621, 0.0598790000003646...
0.266950000004726, 3136084613, 0.0701439999975264...
.....
これをRにCSVとして食わせると、次のようになります。~
time seqnum rtt throughput
1 0.000000 3136068389 0.046920 NA
2 0.080882 3136070885 0.061140 NA
3 0.100000 NA NA 24960
4 0.142042 3136074629 0.090145 NA
5 0.142042 3136072133 0.069914 NA
6 0.200000 NA NA 37440
7 0.211970 3136077125 0.054967 NA
8 0.232201 3136079621 0.059879 NA
このNA値を前後の行の値の中間値となるように補完したいです。~
なにかそのような関数はありますでしょうか。~
補完のやりかたは~
「1,2,NA,4,5」-> [1,2,(2+4)/2=3, 4, 5]~
のようなもので、連続した値が抜けた際は~
「1,2 NA, NA, NA, 6」-> [1,2,3,4,5,6]~
となってもらえるのが理想です。~
~
最初は作ろうかと思ったのですが、既にありそうな気がしたの...
よろしくお願いします。~
−−−−−−~
自己解決しました。
Vectorを補完する関数を書いたので、行列を「列で分解、適用...
complementNaVector <- function(vector) {
posVector <- 1:length(vector)
naPosVector <- posVector[is.na(vector)]
notNaPosVector <- posVector[!is.na(vector)]
for (index in naPosVector) {
lowerVector <- notNaPosVector[notNaPosVector < index]
greaterVector <- notNaPosVector[notNaPosVector > index]
if(length(lowerVector) != 0 && length(greaterVector) !=...
low <- lowerVector[length(lowerVector)]
high <- greaterVector[1]
distance <- vector[high] - vector[low]
stepl2h <- high - low
stepl2i <- index - low
vector[index] <- vector[low] + (distance * stepl2i / s...
} else {
vector[index] <- NA
}
}
return(vector)
}
行列の補完
complementNaMat <- function(matrix) {
iterator <- 2:ncol(matrix)
mat <- complementNaVector(matrix[, 1])
for(index in iterator){
vector <- complementNaVector(matrix[, index])
mat <- cbind(mat, vector)
}
return(mat)
}
## 以下でよさそう
complementNaMat <- function(matrix) {
for (index in 1:ncol(matrix)) {
matrix[, index] <- complementNaVector(matrix[, index])
}
return(matrix)
}
//
- approx というのが stats にある。 -- [[河童の屁は,所詮...
- 4番目と5番目の time の値が同じなのでこれをちょっとずら...
prox 関数の違いは以下の図のようになる。(あなたの関数と同...
d$time[5] <- d$time[5]+0.000001
plot(d$time, d$rtt)
lines(d$time, d$rtt, type="l")
points(d$time, complementNA(d$rtt), col=2) # あなたの関...
lines(d$time, complementNA(d$rtt), col=2, lty=3)
points(d$time, approx(d$time, d$rtt, xout=d$time)$y, col...
lines(d$time, approx(d$time, d$rtt, xout=d$time)$y, col=...
&ref(approx.png);
- 「河童の屁は,所詮屁である。」さん。アドバイスありがと...
**データの重なり [#ued9015f]
>[[森の熊五郎]] (2010-06-27 (日) 01:02:10)~
~
コールセンタに日々大勢の方から電話がかかってきます。1日...
C201004,C201005,C201006~
Sato,Sato,Nishihara~
Tanaka,Yamada,Sato~
Yamada,Kojima,Nishijima~
Inoue,Kitano,Inoue~
Sato,Shinagawa,Yokosuka~
Kitamura,Handa,~
Yamamoto,Kitamura,~
Ohta,Handa,~
Inoue,Nishi,~
Kitamura,Yokota,~
Kobayashi,Sato,~
~
csvのファイルに上記のようにデータベースがあります。~
行方向は日にち、列方向はその日に利用されたお客様のお名前...
call=read.csv("call2010.csv",header=TRUE)
call201004=call$C201004
call201004=call201004[!is.na(call201004)]
call201005=call$C201005
call201005=call201005[!is.na(call201005)]
call201006=call$C201006
call201006=call201006[!is.na(call201006)]
length(call201004)
length(unique(call201004))
length(call201005)
length(unique(call201005))
length(call201006)
length(unique(call201006))
Tcall=c(call201004,call201005)
length(Tcall)
length(unique(Tcall))
Tcall=c(Tcall,call201006)
length(Tcall)
length(unique(Tcall))~
というプログラムを作りました。~
�今回は3日分しかないので、簡単なのですが365日...
�文字列のベクトルの結合はc(X,Y)ではうまくいきませ...
�欲を言えばピボットテーブルのように、お客様毎にい...
コールセンタの利用件数は月に何万件もあって膨大なので、exc...
//
- SQL向きですね。 -- &new{2010-06-27 (日) 10:46:01};
- 文字列ベクトルの結合ではなく,データフレームの結合 cbin...
call <- read.csv("call2010.csv",header=TRUE,as.is=TRUE)
x <- colnames(call)
n <- nrow(call)
N <- 3
call.1 <- call.2 <- rep(NA,N*n)
for (i in seq(1,N)) {
SEQ <- seq(1+(i-1)*n, i*n)
call.1[SEQ] <- call[[i]]
call.2[SEQ] <- rep(x[i],n) }
call.3 <- data.frame(call.2, call.1)
unstack(call.3)
[[1]]
[1] "C201006" "C201006" "C201006" "C201006" "C201006" "C...
$Handa
[1] "C201005" "C201005"
$Inoue
[1] "C201004" "C201004" "C201006"
$Kitamura
[1] "C201004" "C201004" "C201005"
$Kitano
[1] "C201005"
$Kobayashi
[1] "C201004"
$Kojima
[1] "C201005"
$Nishi
[1] "C201005"
$Nishihara
[1] "C201006"
$Nishijima
[1] "C201006"
$Ohta
[1] "C201004"
$Sato
[1] "C201004" "C201004" "C201005" "C201005" "C201006"
$Shinagawa
[1] "C201005"
$Tanaka
[1] "C201004"
$Yamada
[1] "C201004" "C201005"
$Yamamoto
[1] "C201004"
$Yokosuka
[1] "C201006"
$Yokota
[1] "C201005"
call.3 # このような一時的データフレームを...
call.2 call.1
1 C201004 Sato
2 C201004 Tanaka
3 C201004 Yamada
4 C201004 Inoue
5 C201004 Sato
6 C201004 Kitamura
7 C201004 Yamamoto
8 C201004 Ohta
9 C201004 Inoue
10 C201004 Kitamura
11 C201004 Kobayashi
12 C201005 Sato
13 C201005 Yamada
14 C201005 Kojima
15 C201005 Kitano
16 C201005 Shinagawa
17 C201005 Handa
18 C201005 Kitamura
19 C201005 Handa
20 C201005 Nishi
21 C201005 Yokota
22 C201005 Sato
23 C201006 Nishihara
24 C201006 Sato
25 C201006 Nishijima
26 C201006 Inoue
27 C201006 Yokosuka
28 C201006
29 C201006
30 C201006
31 C201006
32 C201006
33 C201006
- ご教授ありがとうございます。教えて頂いたプログラムを読...
- help(read.csv)でオンラインマニュアルを調べて見てくださ...
call <- read.csv("call2010.csv",header=TRUE,as.is=TRUE)
x <- colnames(call)
n <- nrow(call)
N <- 3
call.1 <- call.2 <- NULL
for (i in seq(1,N)) {
SEQ <- (call[[i]] != "") # 空文字列でないか...
call.1 <- c(call.1, call[[i]][SEQ])
call.2 <- c(call.2, rep(x[i],sum(SEQ)) }
call.3 <- data.frame(call.2, call.1)
unstack(call.3)
$Handa
[1] "C201005" "C201005"
$Inoue
[1] "C201004" "C201004" "C201006"
(以下略)
- まず,データ構造を改める方が良いと思います。日ごとのク...
データの処理はアルゴリズムだけではなく,データ構造も重要...
示されたようなデータ構造だと,年月を経れば巨大なファイル...
問題を整理すると,毎日毎日のクレーマーの電話場号を一つの...
以下に,テストデータの生成を含めて集計例を示しますが,この...
> # テストデータ作成
> # 作成されるデータファイル Jun0601 〜 Jun0610 の実際の...
> set.seed(88541)
> for (i in 1:10) {
+ fn <- sprintf("Jun06%02d", i)
+ n <- sample(100:500, 1)
+ x <- sprintf("%03d-%04d", sample(999, n, replace=TRUE...
+ write(x, fn)
+ }
> # 以上のデータを使って,色々な集計をしてみる(最終的に...
> # 入力制限せず(全部),全部の集計
> x <- NULL
> for (i in 1:10) {
+ fn <- sprintf("Jun06%02d", i)
+ x <- c(x, scan(fn, what=""))
+ }
Read 145 items
Read 109 items
Read 169 items
Read 446 items
Read 412 items
Read 283 items
Read 140 items
Read 140 items
Read 199 items
Read 174 items
> length(x) # 読み込んだ全部のクレーム電話番号の個数
[1] 2217
> table(x) # 集計結果 電話番号のように見えるのは架空のも...
x
001-0617 001-5112 002-3684 003-1068 003-3291 004-9049 00...
1 1 1 1 1 1 ...
中略
996-7889 996-9818 997-0618 997-8295 998-9462 999-0492 99...
1 1 1 1 1 1 ...
999-3655
1
> sum(x=="999-3352") # 999-3352 は 1 件
[1] 1
> sum(x=="123-4567") # 123-4567 は 0 件
[1] 0
> sum(table(x) >= 2) # このデータにおいて,2 件以上のク...
[1] 0
> # などなどなどなどなどなどなどなどなどなどなどなどなど...
> ######################################
> # 任意の入力 Jun0601, Jun0602 のみ
> x <- NULL
> for (i in 1:2) {
+ fn <- sprintf("Jun06%02d", i)
+ x <- c(x, scan(fn, what=""))
+ }
Read 145 items
Read 109 items
> length(x)
[1] 254
> table(x) # 集計結果 電話番号のように見えるのは架空のも...
x
003-1068 006-7349 014-9687 021-9091 023-4157 024-4196 02...
1 1 1 1 1 1 ...
中略
979-1463 979-8195 984-7011 990-2678 992-4048 997-0618
1 1 1 1 1 1
意外と,簡単ではないですか?そのうえなにか必要ですか? --...
- Rでやるならという意味で回答しましたが、やはりこれは第一...
- いろいろ、ご教授頂きありがとうございます。「クレーマー...
- ↑↑同意します。用途にあった言語がある中で敢えてRを駆使し...
- call.3 までもってこれれば reshapeパッケージのcast()でも...
- まあ,はっきり強く「NO」と言われたもんだ。クレーマーと...
- 言葉使いが悪くてすみません。ご指摘の通り、コールセンタ...
**neuralパッケージのインストールについて [#me165c60]
>[[hiro]] (2010-06-24 (木) 02:54:33)~
~
はじめまして、Ubuntu10.04(64bit)にて、R:2.10.1を使って...
現在、豊田秀樹氏の「データマイニング入門」という書籍を読...
~
この書籍の第2章の「鉛筆の数え方」のところで、『neuralライ...
~
この書籍はそもそもOS:windowsXP、R:2.7.0を前提にして書か...
~
あるいは、neuralライブラリはLinuxにも提供されていたが、古...
~
この書籍でRを学びたいので、出来ればneuralライブラリを使い...
//
- すみません、自己解決しました。 -- [[hiro]] &new{2010-06...
- http://cran.stat.nus.edu.sg/src/contrib/Archive/neural/...
- そんな面倒なことをしなくても
sudo R CMD INSTALL neural_1.4.tar.gz
でOK -- &new{2010-06-24 (木) 11:51:00};
- Ver.2.12.2ですがどうしてもインストール出来ません。詳し...
**R + VIM (Windows) [#le9c6f7f]
>[[尼河童]] (2010-06-23 (水) 00:12:42)~
~
みなさまこんにちは。~
ウィンドウズマシーンで R 2.10.1 を使っています。はい、バ...
~
エディタは昔から vim を使っているのですが、簡単に R コー...
~
素敵な方法をご存知の方はご教授ください。~
//
**png出力の背景透過について [#s483bc8c]
>[[としろう]] (2010-06-20 (日) 07:21:25)~
~
plot関数などで作成した図を、png形式で出力する際に、枠やプ...
例えば下のプログラムでは、背景が透かしたままで出力されて...
使用環境はwindows,R-2.11.1です。
plot(1:20)
pp<-recordPlot()
png("test.png",bg="white")
replayPlot(pp)
dev.off()
//
- recordPlot したものが透過なのだから,replayPlot したも...
png("test.png",bg="white")
plot(1:20)
dev.off()
でできるのは,ちゃんとバックグラウンドが white です。 -- ...
- ご返答ありがとうございます。教えていただいた方法で、背...
画面に出力を表示させた後にrecordPlot(),replayPlot()を使う...
**Rで(ハフマン)符号の複合化 [#ca9124d4]
>[[R初心者]] (2010-06-19 (土) 21:29:59)~
~
各アルファベットが0/1のコードに(ハフマン)符号化されてい...
~
|文字|符号|
|A|01|
|B|111|
|C|110|
|D|101|
|E|001|
|F|000|
|G|1001|
|H|10001|
|I|10000|
~
上記の表でデータを複合化すると「0,1,1,0,0,0,1,1,1,0,0,1,1...
~
さて,データを複合化するための方法の1つが,符号を2分木化...
#ref(Q&A (初級者コース)/12/tree.gif, center)
しかし,Rではポインタがなさそうなので,仕方なく以下のよう...
データをx,上記のリスト(符号,文字)をy,zに格納するプロ...
> x <- c(0,1,1,0,0,0,1,1,1,0,0,1,1,0,0,1, # データ
+ 1,0,0,0,0,1,1,0,1,1,1,1,0,0,0,1) # 結果:AH...
> y <- c("01","111","110","101","001",
+ "000","1001","10001","10000") # ハフマン...
> z <- c("A","B","C","D","E","F","G","H","I") # 対応する...
次に,データを1文字ずつ読み込み,リストyの要素のいずれに...
> result <- c() # 複合結果
> tmp <- "" # バッファ
> for (i in 1:length(x)) {
+ tmp <- paste(tmp, x[i], sep="") # データから1文字...
+ j <- 1 # 複合化:yのどの...
+ for (j in 1:length(y)) { #
+ if (y[j] == tmp) { # yのj番目の値に該...
+ result <- c(result, z[j]) # zに複合化した結...
+ tmp <- "" # バッファを初期化
+ break # 繰り返し文から抜...
+ }
+ }
+ }
> result
[1] "A" "H" "C" "A" "G" "I" "C" "B" "H"
(1) 上記のプログラムでは,文字の種類が増えてくると計算速...
(2) Rで,C言語のポインタのようなことは出来るのでしょうか.~
ご教示戴けますと幸いです.
//
**grep("c",list(c("","")) の値が 1 になる問題 [#b897f8cd]
>[[松田紀之]] (2010-06-18 (金) 10:04:51)~
~
Mac OS-X (10.5.8)でR2.11.1で文字列処理を試みているうちに...
(1) patternの文字が"c"以外のアルファベットなら正常に動く.~
(2) 参照されるlistの内容が c("") と単一の場合も正常に動く...
(3) listではなく,grep("c",c("","")) なら正常に動く.~
プログラム全体の都合上,list() を対象にしています.何故こ...
//
- ?grep内のx, testを読んでみてください. grep では文字列ベ...
- 既出:このページの一番下の記事を読んでみてください。原...
- 早速お答え頂き有り難うございました. grep(pattern, x,…)...
**batch処理でfile名を自動的に生成し、saveしたい [#kc2610db]
>[[nakamura]] (2010-06-17 (木) 19:18:15)~
~
//初めて質問させていただく初心者です。
単純な例として装置からの多数のdataをreadで取り込んで、XDR...
file.name <- c("map_1.csv", "map_2.csv") # ファイル名の...
par(ask=T)
for (i in 1:2) {
fn <- file.name[i] # ファイル名
dt <- read.csv(fn , header=T, na.strings="NA")
# plot(dt, main=fn) # main タイトル付きの描画
write.table(summary(dt), "fn_sum.txt", quote=F)
save(dt, file="file.name[i].dat")
}
//
- write.table で "map_i_sum.txt", save で,"map_i.dat" ...
for の制御変数 i を使って,fn <- paste("map_", i, ".csv",...
- ご回答ありがとうございます。うまくゆきました。追加で伺...
- ?assign -- &new{2010-06-18 (金) 18:38:20};
- 最初にも書いていたのだけど,「[[行列にfor文中の変数を含...
でも,本当にそんなことが必要になることは滅多にないと思う...
- ありがとうございます。調べ方が不十分で、お手数をおかけ...
**「0,1」のビットファイルを読み込む方法 [#n2cd5497]
>[[R初心者]] (2010-06-17 (木) 12:01:56)~
~
「0100101000010101・・・」のように延々と続くファイルがあ...
> ff <- tempfile()
> cat(file=ff,"01000101000100100101\n")
> read.fwf(ff, widths=rep(1,20))
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V...
0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 ...
(1) ファイルを読み込む際文字数(ビット数)が分からなけれ...
(2) 上記では関数read.fwf()で無理やり読み込んでいますが,...
どうかよろしくお願いいたします.~
//
- readBin を調べるとよいのではないかな。readBin(ff, size=...
- 早速ご指導いただきましてありがとうございます.以下のよ...
> ff <- tempfile()
> cat(file=ff, "01000101000100100101\n")
> read.fwf(ff, widths=rep(1,20))
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16...
1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0...
> file.info(ff) # ファイル...
...
C:\\DOCUME~1\\x\\LOCALS~1\\Temp\\RtmpcQhzyb\\file767d7a5...
...
C:\\DOCUME~1\\x\\LOCALS~1\\Temp\\RtmpcQhzyb\\file767d7a5...
...........................................................
> file.info(ff)[1] # ファイル...
...
C:\\DOCUME~1\\x\\LOCALS~1\\Temp\\RtmpcQhzyb\\file767d7a5...
>
> size <- as.integer(file.info(ff)[1]-2) # 改行文字...
> read.fwf(ff, widths=rep(1,size)) # 読み込み
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16...
1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0...
> readBin(ff, size=1, what="int", n=size) # 整数値 ...
[1] 48 49 48 48 48 49 48 49 48 48 48 49 48 48 49 48 48 ...
> readBin(ff, size=1, what="raw", n=size) # raw(16進)...
[1] 30 31 30 30 30 31 30 31 30 30 30 31 30 30 31 30 30 ...
> readBin(ff, size=1, what="int", n=size)-48 # 整数値 ...
[1] 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 1
お忙しいところ本当にありがとうございました.-- [[R初心者]...
**単語間の距離を求めデンドログラムの構築まで [#k501932a]
>[[AKB]] (2010-06-15 (火) 23:49:30)~
~
基データ(csv)としてテキスト(301)×単語(1134)のマトリクスが...
data <-read.csv("C:/RTest/Real Game.csv", header=T, row....
data # 表示
old.op <- options(max.print=999999)
myCosine <- function(x) {
ret <- matrix(0, ncol=ncol(x), nrow=ncol(x))
for(i in 1:ncol(x)) {
for(j in 1:ncol(x)) {
ret[i, j] <- (x[,i] %*% x[,j]) / (sqrt(sum(x[,i]^2...
}
}
ret
}
myCosine(data)
plot(hclust(as.dist(data)))
です.基のデータから単語間の距離に基づいたデンドログラム...
//
- 何のために myCosine を定義したんですか?~
myCosine(data) をやっても,その結果を使ってないじゃないで...
plot(hclust(as.dist(myCosine(data)))) なんじゃないですか?~
「[[デンドログラム、またヒートマップのデンドログラムの高...
投稿法も再度チェックしてください(記事にプログラムを含め...
**データフレームの取り出し [#w831996e]
>[[akira]] (2010-06-12 (土) 22:53:35)~
~
以下のデータフレームがあったとして
a b c d e f g
1 q p q 4 6 7 6
2 q p p 5 4 5 4
3 p p p 5 4 5 7
4 q q q 3 5 4 6
a~cそれぞれの値がpに該当する行を取り出す方法を考えていた...
[a]
d e f g
3 5 4 5 7
[b]
d e f g
1 4 6 7 6
2 5 4 5 4
3 5 4 5 7
[c]
d e f g
2 5 4 5 4
3 5 4 5 7
どなたかお分かりの方、丸投げで申し訳ありませんがご教示頂...
//
- 誰でも分かると思うが,答えてやろうと思う人は少ないのか...
> subset(x, x[1]=="p")[4:7]
d e f g
3 5 4 5 7
> subset(x, x[2]=="p")[4:7]
d e f g
1 4 6 7 6
2 5 4 5 4
3 5 4 5 7
> subset(x, x[3]=="p")[4:7]
d e f g
2 5 4 5 4
3 5 4 5 7
> x[x[1]=="p",][4:7] # これは余りお勧めしない
d e f g
3 5 4 5 7
- 迅速なご回答ありがとうございます。すみません、質問を間...
- てまがかかるなあ。。。lapply(x[1:3], function(y) subset...
- ありがとうございました。lapplyの使い方がいまひとつ理解...
**配列とGIS(緯度経度)情報の重ね合わせ図 [#f3d0f36c]
>[[宗二]] (2010-06-11 (金) 02:01:30)~
~
シェープファイルと2次元配列から作った、図の重ね合わせ方で...
具体的には、日本の海岸線のシェープファイル(ライン)を
plot(シェープファイル, xlim=c(西経度, 東経度), ylim=c(南...
というようにプロットした後、2 次元配列として用意した日本...
配列をプロットするときの軸の範囲が、配列の要素番号と対応...
image(配列, xlim=c(西経度, 東経度), ylim=c(南緯度, 北緯...
のようにすると、範囲が大きくずれて何も表示されなくなって...
なにか良い解決方法ありましたらお願いします。~
//
- シェープファイルの読み込みはどのライブラリのどのコマン...
- ご返答ありがとうございます。シェープファイルの読み込み...
- 「あなたの試みたことを回答者が再現できるような、データ...
- 分かりにくい質問で申し訳ないです。~
当方のR環境はver2.10.0で、Tinn-R1.19.4.7で編集したものをR...
シェープファイルは国土交通省のホームページで公開されてい...
http://nlftp.mlit.go.jp/ksj/jpgis/datalist/KsjTmplt-C23.h...
のxmlファイルを、ArcGISでまとめてcoastline.shpというファ...
その上で以下のようなプログラムを試しています。 -- [[宗二]...
temp0 <- file("...気温のバイナリデータ...", "rb")
width <- 501 ### 気温データの水平格子数
height <- 501 ### 気温データの鉛直格子数
temp <- readBin(temp0,integer(), n=width*height, size=2)
close(temp0)
temp = temp/10.0 ### データ-->気温への変換式です。
temp_arr <- matrix(temp,width,height)
temp_arr = t(apply(temp_arr,1,rev)) ### 地図投影のため...
image(temp_arr,col=rainbow(300),xlim=c(137,142),ylim=c(3...
### 経度137E-142E, 緯度36N-41N, 温度の範囲5-30℃ で指定し...
### このままだと図の枠中が白紙のままです。
### 501*501の配列を、0.01度格子で上記の緯度経度に対応さ...
map <- readShapeLines("coastline.shp")
plot(map,xlim=c(137,142),ylim=c(36,41))
### 海岸線のシェープファイルの読み込みとプロット
### こちらは図の枠内にちゃんと海岸線がプロットされます。
- tempにxy座標が入っていないのでそれでは重なりません。ヒ...
a <- list(x=seq(137,142,1),y=seq(36,41,1),z=1:6%o%1:6)
image(a)
&ref(st20100614-2.png,center);~
~
この図の描画に続いて
map <- readShapeLines("coastline.shp")
plot(map,xlim=c(137,142),ylim=c(36,41),add=TRUE)
とすれば、重なっていることがわかるはず。coastline.shpがな...
- 的確なご指摘ありがとうございました。思いどおりの図が描...
リスト化して配列にxy座標の情報を付加するんですね。勉強に...
**プログラムの中断・再開 [#yd40b668]
>[[shannon]] (2010-06-11 (金) 00:54:55)~
~
プログラム実行を途中で中断・再開させる関数、あるいはコマ...
WindowsのTinn-R(ver:1.19.4.7)から、ショートカットキーでR...
手動で範囲指定してコンソールに送る、以外でいい方法はない...
//
- 簡単そうな質問なのに回答がないのは,質問があいまいなの...
「変数の値を確認」というのは,いつも決まった変数の値を確...
> for (i in 1:10) {
+ print(paste("i =", i))
+ j <- readLines(con=stdin(), n=1)
+ if (j == "stop") break # 早めに実行中断したいならこの...
+ }
[1] "i = 1"
# リターンキーだけ押した
[1] "i = 2"
ok
[1] "i = 3"
0
[1] "i = 4"
stop # "stop" を入力すると終了
それとも場合に応じていろいろな変数をチェックすることもあ...
- ご返答ありがとうございます。
browser()やstopifnot()など他のデバッグ用関数も試してみま...
思い違いでしたら申し訳ないのですが、確かに関数の命令文の...
例えば以下のように、プログラム中で変数の定義をやり直す場...
1: a <- 1
2: b <- 2
3: #ここで実行を中止したい
4: a <- 10
5: b <- 20
示していただいた例文を使って、
1: a <- 1
2: b <- 2
3:
4: for (i in 1:2) {
5: print(paste("i=", i))
6: j <- readLines(con=stdin(), n=1)
7: if (j =="stop") break
8: }
9:
10: a <- 10
11: b <- 20
のようにして実行すると、10行目のa<-10という命令がreadLine...
10行目以降の命令を渡す前に、9行目までで実行を中断したいの...
- > 確かに関数の命令文の中で使うと効果があるんですが、関...
そのような場合には,全体を { } でくくってやればよいのです...
{ # これと
a <- 1
b <- 2
cat("Hit any key!\n")
if (readLines(con=stdin(), n=1) == "stop") stop("中止し...
a <- 10
b <- 20
} # これ
こんなところでいかが? -- [[河童の屁は,河童にあらず,屁...
- 再度のご返答ありがとうございました。教えていただいたや...
専用の関数がなくとも工夫しだいでなんとかなるんですね。 --...
**Rによる日別の時系列分析に関する文献を探しています。 [#u...
>[[T]] (2010-06-10 (木) 16:22:17)~
~
//ここに書き込めばいいかわからなかったのですが、ここに書...
只今卒論のテーマとしてある飲食店の一店舗の様々な日別デー...
ご存じの方がいらっしゃれば教えていただけると幸いです。~
//
**2次元配列の回転 [#j69b3d6b]
>[[do-san]] (2010-06-10 (木) 01:08:00)~
~
2次元のバイナリ(もしくは文字列)配列を、90度、もしくは18...
//
- 二次元のバイナリ配列というのは,例えば,画像ファイル(j...
文字列配列というのは要素が文字列であるだけで,[[数値行列...
- ありがとうございます。見落としてました。 -- [[do-san]] ...
**filled.contourの 重ね描きについて [#pe30cf3c]
>[[vp]] (2010-06-06 (日) 21:35:28)~
~
宜しくお願いします。~
以下のように filled.contour で描いた図に abline で x=0.5,...
data(volcano)
filled.contour(volcano, color = terrain.colors, asp = 1)...
par(new = T)
abline(h = 0.5, xlim = c(0, 1), ylim = c(0, 1))
par(new = T)
abline(v = 0.5, xlim = c(0, 1), ylim = c(0, 1))
何かうまい方法は無いでしょうか?~
//
- オンラインヘルプの Note の二段落目を熟読玩味。 -- [[河...
filled.contour(volcano, color = terrain.colors, asp = 1,
plot.axes={axis(1); axis(2); abline(v=0.5...
- ありがとうございます。余白の使い方がよくわかりました。y...
- 最初に書いたものを修正しました。filled.contour を読んで...
現在示しているものが正しい対処法です。私自身も,オンライ...
- おお!filled.contourに専用の引数が用意されていたのです...
- ここで質問すべきでなかったらすみません。私も同じ問題で...
上記を参考にさせていただいたのですが、~
filled.contourの引数plot.axesに、例えば以下のようにplot(s...
data(volcano)
filled.contour(volcano, color = terrain.colors, asp = 1
,plot.axes={axis(1); axis(2);plot(seq(0,1...
下の図のように、左側にあった作図領域が消去されて、~
右のカラーバーに軸を併せてプロットしてしまいます。
#ref(Q&A (初級者コース)/12/miss_filled_contour.jpg,50%...
filled.contourにplotを使って重ね書きする場合は、
また別の方法があるんでしょうか? -- [[ですら]] &new{2010-...
- plot.axes={par(new=T); plot(seq(0,1,by=0.1))} では? --...
- ご回答ありがとうございます。ご指摘いただいたやり方で、p...
#ref(Q&A (初級者コース)/12/miss_filled_contour2.jpg,50...
data(volcano)
filled.contour(volcano, color = terrain.colors,xlim=c(0,...
plot.axes={axis(1); axis(2);par(new=T);
plot(seq(0,1,by=0.1,xlim=c(0,1),ylim=c(0,...
})
xlim,ylimで軸の範囲を設定してもずれは直りませんでした。こ...
- par(new=T)は単に重ね描きするだけですから、plot.axesの中...
data(volcano)
filled.contour(volcano, color = terrain.colors,
plot.axes = {par(new = T, xaxs = "i", yax...
plot(seq(0, 1, by = 0.1), se...
xlab = "", ylab = "")
axis(1); axis(2)})
- ご回答ありがとうございます。parによるグラフィックスパラ...
ご指摘いただいた例を参考にして、目的とする図が描けました...
また、読みにくいプログラムを示してしまい失礼しました。前...
**GLMのfamily指定によるEstimateの正負の逆転について [#fd2...
>[[mm]] (2010-06-06 (日) 01:59:41)~
~
こんにちは。最近RでGLMに取り組み始めました。~
まずは,説明変数が応答変数によって正,負のどちらに影響し...
この応答変数は,連続変数で正の値を取るため,familyをGamma...
するとEstimateの値が,正規分布を仮定した回帰分析と逆の正...
下の例のように,irisのデータで,familyをgaussianとGammaで...
指定するfamilyによって,正負の方向が逆転するということは...
test <- glm(Petal.Length ~ Petal.Width, data=iris) ...
summary(test)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.08356 0.07297 14.85 <2e-16 ***
Petal.Width 2.22994 0.05140 43.39 <2e-16 ***
####################
testG <- glm(Petal.Length ~ Petal.Width, data=iris, fami...
summary(testG)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.532340 0.017386 30.62 <2e-16 ***
Petal.Width -0.172682 0.008915 -19.37 <2e-16 ***
//
- family=Gamma の場合,link のデフォルトは inverse ですよ...
- 早速ありがとうございました。返信が遅くなり申し訳ありま...
- 続きです。Gammaしてみました。(link=inverse)Gmma分布につ...
- 上記入力ミスがありました(link=inverse)としてみたら出...
**Bland Altman plotについて [#q2ce7e5a]
>[[sakura]] (2010-06-05 (土) 13:13:57)~
~
最近、調べ物をしていたら、Bland Altman plot のことが目に...
//
- 調べるついでに,google 検索すればよかったですね。~
ResearchMethods パッケージに入っているようです。 -- [[河...
BlandAltman {ResearchMethods} R Documentation
BlandAltman Plot
Description
Using a graphical user interface (GUI) this function per...
plot, and allows for manipulation of the variables withi...
Usage
BlandAltman(x, y, gui=TRUE, bandsOn=FALSE, biasOn=FALSE,...
smooth=FALSE, sig=2)
- 早速のリサーチありがとうございます。 -- [[sakura]] &new...
- > 早速のリサーチありがとうございます~
そんなに,まともに受け取られると,ずっこけるなあ。 -- [[...
- Altman Plot についての邦文解説の詳しいのを見つけられま...
- あなたが見つけた,一番詳しい解説はどこにあった,どのよ...
それを聞いておかないと,答えらんねえ。「そんなんじゃだめ...
- 因みにグーグルすると、以下のような情報に行き当たるので...
2法を繰返しデータの差分として、応用出来そうに思ったりして...
VBA for Excel97による統計ソフト http://www.kms.ac.jp/~cl...
3. 系統誤差の有無・種類の確認 http://shimoi.iuhw.ac.jp/r...
次に, この研究デザインによる結果としての測定値に, 系統誤...
Bland-Altman分析とは, 2つの測定値の差(difference, a-b, ...
つまり、次の座標で示される点AをプロットするとBland-Altman...
Bland-Altman分析を用いた継ぎ足歩行テストの検者内・検者間...
- 英語が苦手なもので、重い腰が上がらずにいるのです。 -- [...
- 英文を探してみると、以下の通り、~
British Journal of Anaesthesia 2007 99(3):309-311; doi:10...
I. Using the Bland–Altman method to measure agreeme...
この論文のレファレンスでAltmanの論文~
7 Bland JM, Altman DG. Statistical methods for assessing ...
8 Bland JM, Altman DG. Comparing methods of measurement: ...
9 Bland JM, Altman DG. Measuring agreement in method comp...
- もしや、と思い、PubMedで「altman plot」で検索すると、46...
- Blandのスペルを間違ってBrandとなっていますが,http://ph...
- ありがとうございます。早速拝見させていただきました。新...
- MethCompの最新バージョンはBendix Carstensenのサイトで辿...
**while のエラー [#x8659b2f]
>[[while]] (2010-06-03 (木) 03:44:10)~
~
while を使用し、行列 kara 内に while 内処理を length(mg) ...
(df kara 内の candy, drop という変数(行名)それぞれに対応...
エラーは以下のように出ます。
以下にエラー kara[, i] <- g :
置き換えるべき項目数が,置き換える数の倍数ではありませ...
//初心者の質問で申し訳ありませんが、ご教授願います。~
mg <- c("candy","drop") # データフレーム ame の中の coln...
kara <-matrix(, length(mg))
i <- 0
while(i <- i+1 <= length(mg)) {
g <- colMeans(subset(ame, ame[i] == "eat", select = ...
kara[,i] <- g
}
//
- 直しようがないプログラムですね。mg <- c("candy", "drop"...
もっと R らしい,簡明直截なプログラムを考えるとよいでしょ...
- そうですね。せめて、ame の中身をつけていただければ、妄...
- 説明不足で申し訳ありません。ameの中には数値データ(1~140...
- 言葉だけでは曖昧なので,小さなデータを示せばすぐにわか...
以下のようなデータフレームでしょうかね。
> set.seed(123)
> ame <- data.frame(name=sample(c("candy", "drop", "cara...
+ x1=sample(140, 15, replace=TRUE),
+ x2=sample(140, 15, replace=TRUE),
+ x3=sample(140, 15, replace=TRUE))
> ame
name x1 x2 x3
1 candy 126 135 20
2 caramel 35 127 33
3 drop 6 97 66
4 caramel 46 112 38
5 caramel 134 4 121
6 candy 125 67 7
7 drop 97 107 62
8 caramel 90 31 112
9 drop 140 45 18
10 drop 92 33 79
11 caramel 100 20 29
12 drop 77 59 18
13 caramel 84 58 106
14 drop 41 52 126
15 candy 21 22 53
求めるものも,一行でできますよ。
> sapply(split(ame, ame[,1]), function(d) colMeans(d[2:4...
candy caramel drop
x1 90.66667 81.50000 75.5
x2 74.66667 58.66667 65.5
x3 26.66667 73.16667 61.5
これでよい?必要に応じ,結果を転置。 -- [[河童の屁は,河...
- 目的次第ですが,ライブラリの有効利用を考えると。library...
- ライブラリの関数を持ち出すのは反則行為だなあ(^_^;)~
aggregate(ame[2:4], ame[1], mean) というのが,一番簡単か...
> aggregate(ame[2:4], ame[1], mean)
name x1 x2 x3
1 candy 90.66667 74.66667 26.66667
2 caramel 81.50000 58.66667 73.16667
3 drop 75.50000 65.50000 61.50000
- ありがとうございます。cady,drop,calamelの変数以外にも10...
- 工夫次第ですよ。 -- [[河童の屁は,河童にあらず,屁であ...
> ame2 <- ame[ ame[,1] %in% c("caramel", "drop"),]
> aggregate(ame2[2:4], ame2[1], mean)
name x1 x2 x3
1 caramel 81.5 58.66667 73.16667
2 drop 75.5 65.50000 61.50000
**Kaplan-Meier 曲線が 1 本だけ [#ncf3a5cd]
>[[?アロバ]] (2010-06-02 (水) 19:29:27)~
~
たびたび皆様にご指導いただきたく、よろしくお願いします。
source("http://aoki2.si.gunma-u.ac.jp/R/src/km_surv.R", ...
# 1 は A 群,2 は B 群を表す
group <- c(1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,1,1,1,1,1,
1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,1,2,2,1,2)
# 1 は死亡,2 は 生存(打ち切り)を表す
event <- c(1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,
1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0)
# 生存期間
time <- c(2,84,318,198,198,197,192,306,96,90,88,66,48,264,
24,5,243,216,42,5,20,0,12,144,48,192,192,228,
176,180,84,84,123,117,115,267,98,96,86,63,44,41,
33,20,18,252)
a.group <- group == 1
km.surv(time[a.group], event[a.group])
library(survival) # survival ライブラリーを使う
dat <- Surv(time[a.group], event[a.group]) # survfit で...
res <- survfit(dat)
上記にて入力したのですが、Kaplan-Meier 曲線が A 群 1 本だ...
//
- plot(survfit(Surv(time, event)~group), col=1:2) でよい...
survfit.formula のオンラインヘルプを熟読すると,使い方が...
- 出来ました、早速”survfit.formula”を読んでみます。ありが...
**行列にfor文中の変数を含んだ名前をつける [#k18bf6cc]
>[[lo]] (2010-05-31 (月) 00:05:13)~
~
for (i in 1:10){~
の中で~
計算結果を行列に格納する工程を書いた後~
i番目の結果を格納した行列(仮にkekkaという名前とします)に...
hogeとi(1から10までの値をとる)をくっつけた、hogeiという名...
この場合、~
hogei<-kekka~
とやっても、hoge1とならずに、hogeiとなってしまいます。~
paste("hoge",i)<-kekkaとやると、エラーになります。~
このような、ループの回数に応じた連続した名称をつけるには...
//
- eval(parse(text=foo)) を検討しましょう。以下のように類...
[[構文 eval(parse(text=...)) :http://www.okada.jp.org/RWi...
[[複数ファイル作成および展開方法:http://www.okada.jp.org/...
[[for-loopのどこでwarningが出たか知りたい:http://www.okad...
[[作業中のファイルの名前取得:http://www.okada.jp.org/RWik...
[[Rでのファイル操作と繰返し文:http://www.okada.jp.org/RWi...
[[変数名に別の変数の内容を含めたい:http://www.okada.jp.or...
[[関数とlistコマンドに関する質問:http://www.okada.jp.org/...
[[連番の変数の参照:http://www.okada.jp.org/RWiki/?cmd=rea...
[[凡例中に数式と数値変数を繰り返し書きたいのですが:http:/...
[[(81) 文字列を数値ベクトルに変換するいくつかの方法:http:...
[[for文での連続した処理:http://www.okada.jp.org/RWiki/?cm...
[[R の命令を表す文字列の値を計算する :http://www.okada.jp...
[[変数をデータフレーム(又はリスト)に加える:http://www.oka...
[[動的に生成された内容/数式マークアップを持つラベル:http:...
[[7.23 文字列を変数に変換するには?:http://www.okada.jp.or...
[[構文を表す文字列を命令として解釈実行:http://www.okada.j...
- ありがとうございます。無事に変数を含んだ行列を生成でき...
- できた行列をcsvで保存するだけなら、オブジェクトに順番つ...
でいいのでは?ループ外で順番に名前をつけたオブジェクトを...
- ありがとうございます。すべて解決しました。 -- [[lo]] &n...
**val.prob{Design}のexampleコードに関する質問 [#o0231325]
>[[vi]] (2010-05-27 (木) 19:22:41)~
~
質問です。Designパッケージの説明ページ~
http://bm2.genes.nig.ac.jp/RGM2/R_current/library/Design/...
において、Examplesとして、実際に使用するときのコードが載...
この中の、後半部分$Survival analysis examples 中に
# Survival analysis examples
# Generate failure times from an exponential distribution
set.seed(123) # so can reproduce results
n <- 2000
age <- 50 + 12*rnorm(n)
sex <- factor(sample(c('Male','Female'), n, rep=TRUE, pr...
cens <- 15*runif(n)
h <- .02*exp(.04*(age-50)+.8*(sex=='Female'))
t <- -log(runif(n))/h
label(t) <- 'Time to Event'
ev <- ifelse(t <= cens, 1, 0)
t <- pmin(t, cens)
S <- Surv(t, ev)
# First validate true model used to generate data
w <- val.surv(est.surv=exp(-h*t), S=S)
plot(w)
plot(w, group=sex) # stratify by sex
上記のような記載があるのですが、私は、est.survというのが...
w <- val.surv(est.surv=exp(-h*t), S=S)
の部分の、exp(-h*t)は、比例ハザードを用いて、(時間tにおけ...
//
- コメントに有るように、これは比例ハザードモデルではなく...
**デンドログラムの葉の並び替え [#pc366591]
>[[jun]] (2010-05-25 (火) 22:57:47)~
~
クラス "dendrogram" に対するメソッドで葉を並べ替える~
reorder(x, wts, ...)~
というものがありますが、使い方がよくわかりません。~
~
葉をV1、V2、V3、V4・・・・と昇順に並べたいのですが。~
昇順に並べても枝は絶対にクロスしないような距離行列とクラ...
~
wtsとは重みと書いてありましたが何の重みですか?~
よろしくお願いします。~
使用環境はR version 2.10.0 (2009-10-26)でWindowsVistaです...
~
1からV1への距離は存在しないので過度に大きな数として99.00...
クラスタリングを単連結で行うため結果に影響は及ぼさないと...
> r
V1 V2 V3 V4 V5 V6 V7 V...
1 99.000 0.045 99.000 99.000 99.000 99.000 99.000 99.00...
2 0.045 99.000 0.071 99.000 99.000 99.000 99.000 99.00...
3 99.000 0.071 99.000 0.042 99.000 99.000 99.000 99.00...
4 99.000 99.000 0.042 99.000 0.037 99.000 99.000 99.00...
5 99.000 99.000 99.000 0.037 99.000 0.059 99.000 99.00...
6 99.000 99.000 99.000 99.000 0.059 99.000 0.111 99.00...
7 99.000 99.000 99.000 99.000 99.000 0.111 99.000 0.07...
8 99.000 99.000 99.000 99.000 99.000 99.000 0.071 99.00...
9 99.000 99.000 99.000 99.000 99.000 99.000 99.000 0.09...
> plot(hclust(as.dist(r),method="single"))
//
- 本当によく分からない関数ですね。以下のようにすると希望...
par(mfrow=1:2)
hc <- hclust(as.dist(r),method="single")
plot(hc, hang=-1, main="", sub="", xlab="")
hc2 <- reorder(as.dendrogram(hc), c(1,2,3,4,5,13,7,8,20))
plot(hc2)
&ref(reorder.png);
- ありがとうございます。ただ他のデータも同じようにしてい...
- str(hc)で構造がわかるようですね。勉強になりました。 -- ...
**既定値つきの引数 [#a20b900c]
>[[ms]] (2010-05-25 (火) 20:56:33)~
~
//教えて下さい。~
RjpWikiの『Rの関数定義の基本』を参考にさせて頂き、関数定...
x[2]+x[3]=1 としたいのですが、この書き方ではだめなのでし...
~
ご意見頂きたくよろしくお願い致します。~
使用環境は R2.10.1, XPです。
fr <- function(x, y=1) {
LL <- 0
pp <- x[4]*(x[2]*(Data[, 19])^x[1] + x[3]*(Data[, 21])...
dp <- x[4]*(x[2]*(Data[, 20])^x[1] + x[3]*(Data[, 22])...
y <- x[2] + x[3]
Ppp <- exp(pp) / (exp(pp) + exp(dp))
Pdp <- exp(dp) / (exp(pp) + exp(dp))
Ppp <- (Ppp != 0)*Ppp + (Ppp == 0)
Pdp <- (Pdp != 0)*Pdp + (Pdp == 0)
Cpp <- Data[, 4] == 1
Cdp <- Data[, 4] == 0
LL <- sum(Cuchi*log(Puchi) + Csoto*log(Psoto))
return(LL)
}
//
- 何を計算しようとしている関数なのか理解できません。何を...
「x[2]+x[3]=1 としたい」というのも,よくわからない。x の...
ついでながら,引数で渡される y は規定値 1 を持つが,にも...
- 不勉強で申し訳ありません。~
LL <- sum(Cpp*log(Ppp)+Cdp*log(Pdp)) の間違いです。計算し...
- x[2]+x[3]=1 が制約条件なら,x[3] を求めなきゃ良い。計算...
- もし x[1],x[2] 等にさらに正値等の条件が付くなら、[[線形...
- ありがとうございます。コメント頂いたとおり、x[2]x[3]は...
- ありがとうございます。コメント頂いたとおり、x[2]x[3]は...
- constrOptim のソースコードの optim を呼ぶところに hessi...
**lme関数出力のvariance componentの標準誤差 [#kfab989e]
>[[aor]] (2010-05-21 (金) 11:28:09)~
~
いつも勉強させてもらっています。~
nlmeパッケージ、lme関数を使用してマルチレベル分析の勉強を...
この出力のうち、 VarCorr関数を使うと分散が出力できますが...
~
小野寺先生らが訳された「基礎から学ぶマルチレベルモデル」 ...
上記の書やインターネットでの検索をすると、「標準誤差はあ...
ですが、その意見はその意見として、勉強のため標準誤差の出...
標準誤差を出力するRの方法、あるいは計算式などについて記載...
どうぞよろしくお願いします。~
環境はR2.11.0, Windows Vistaです。
# サンプル (lmeのヘルプから)
library(nlme)
fm2 <- lme(distance ~ age + Sex, data = Orthodont, rando...
summary(fm2)
VarCorr(fm2)
intervals(fm2)
//
**行列の要素の比較について [#r00a6520]
>[[yosshiii]] (2010-05-20 (木) 16:28:42)~
~
連続で質問です。質問ばかりですみません。~
行列で
01.txt 02.txt 03.txt
A 10 3 7
B 1 0 0
C 10 3 7
の行列があり、”A”という単語がテキスト01に10回, テキスト02...
そこで「A」と「C」の各テキスト毎の出現回数が等しいとき, ...
//
- データ及びプログラムの仕様がはっきりしないのですけど,...
「効率的なやり方が浮かばない」だけで,非効率かも知れない...
以下のようなプログラム(テストデータ生成を含む)はいかが?
#-----------テストデータ作製開始
set.seed(12347)
a <- data.frame(matrix(sample(3, 30, replace=TRUE), 10))
colnames(a) <- sprintf("%02d.txt", 1:3)
rownames(a) <- LETTERS[1:10]
a
#-----------テストデータ作製完了
# 同一行の抽出
dup <- rownames(a[duplicated(a),])
for (i in dup) {
rows <- logical(nrow(a))
for (j in 1:nrow(a)) {
rows[j] = all(a[j,] == a[i,])
}
if (sum(!is.na(rows))) {
cat("-------------\n")
print(a[rows,])
a <- a[!rows,,drop=FALSE]
if (nrow(a) < 2) break
}
}
作られるデータフレーム a は以下の通り
01.txt 02.txt 03.txt
A 3 2 3
B 2 1 1
C 3 2 1
D 3 1 1
E 1 1 1
F 3 1 1
G 1 1 1
H 3 2 1
I 2 1 1
J 1 1 1
実行結果は以下の通り
-------------
01.txt 02.txt 03.txt
D 3 1 1
F 3 1 1
-------------
01.txt 02.txt 03.txt
E 1 1 1
G 1 1 1
J 1 1 1
-------------
01.txt 02.txt 03.txt
C 3 2 1
H 3 2 1
-------------
01.txt 02.txt 03.txt
B 2 1 1
I 2 1 1
同一行の抽出部分を以下のようにすれば,
# 同一行の抽出
a <- a[order(a[,1], a[,2], a[,3]),] # ここは,列数分書い...
n <- nrow(a)
dup <- logical(n)
dup[1] = all(a[1,] == a[2,])
dup[n] = all(a[n,] == a[n-1,])
for (i in 2:(n-1)) {
dup[i] = all(a[i,] == a[i-1,]) || all(a[i,] == a[i+1,])
}
a[dup,]
以下のような結果になります。同じ内容を持つ行がまとめられ...
01.txt 02.txt 03.txt
E 1 1 1
G 1 1 1
J 1 1 1
B 2 1 1
I 2 1 1
D 3 1 1
F 3 1 1
C 3 2 1
H 3 2 1
- •おぉ!!テストデータの作り方まで親切に教えて下さ...
**データフレームの作成 [#b408c3ac]
>[[yosshiii]] (2010-05-19 (水) 12:44:00)~
~
//質問です。
フォルダ内全てのテキストファイルからテキストファイル毎に...
フォルダ「test」に01.txt, 02.txt, 03.txtのテキストファイ...
01.txt 02.txt 03.txt
アリ 1 1 1
スズメ 1 0 0
リス 0 1 0
ハチ 0 0 1
のようにしたいと思っています。~
そして今現在「count」というリストにcount[[1]]=(1 1 0 0), ...
//
- > リストにcount1?=(1 1 0 0), count2?=(1 0 1 0), count3...
付け加えろといわれても,その部分がどのようにできあがって...
l <- list.files(pattern="*.R") # R プログラムを対象に
n <- length(l) # 対象ファイルの個数
res <- matrix(0, 4, n) # 行列にしておく。行数(例では4)...
colnames(res) <- l # 列名をファイル名に
for (i in 1:n) { # 各対象ファイルを処理
x <- readLines(l[i]) # 読み取って
a <- c(any(grepl("function", x)), # キーワードがあれば ...
any(grepl("plot", x)), # 最終的には 1/0 になる
any(grepl("sqrt", x)),
any(grepl("print", x)))
res[, i] <- a # i 番目のファイルの結果は i 列へ
}
(res <- data.frame(res)) # データフレームに変換
こんな風にもできるということで。 -- [[河童の屁は,河童に...
- ホンマに助かりました!!!!^^ -- [[yosshiiii]] &new{...
**ループを用いたPSファイルの自動生成 [#k09d9725]
>[[だいもん]] (2010-05-19 (水) 12:05:32)~
~
以下のコマンドをループでまわすことで、ポストスクリプトフ...
postscript(sheet, horizontal = FALSE, paper = "special",...
levelplot(dd[, 4] ~ dd[,1]*dd[,2], , color=TRUE)
dev.off()
まずこのコマンドをループを遣わずに実行すると、X11()デバイ...
~
さらにループで複数回まわすと、全てのPSファイルが白紙(フ...
~
当方の環境はWindows XPで、R2.11.0を利用しています。お知恵...
//
- ループの中だけ見ても分からないのですが、Xが立ち上がると...
- latticeは癖があるので, 例えば postscriptの代わりに, tre...
library(lattice)
ps.options(onefile=F, paper = "special", height = 4, wid...
trellis.device(postscript, color=T, file="hoge.eps")
mm <- matrix(rnorm(8^2), 8, 8)
levelplot(mm)
dev.off()
なんかかなぁ.
- latticeを入れてみました。確かに、動作が変ですね。私の環...
- 白紙になるのはループ内では, plot(levelplot(mm))とかみた...
- 例えば,levelplot のオンラインヘルプの Values の項に,...
The update method can be used to update components of the...
**ラベルに文字列+式 [#t50ea874]
>[[N/A]] (2010-05-19 (水) 12:02:00)~
~
ラベルで~
coefficient β[i]~
としたい場合どのようにすればよいでしょうか?
ylab="Regression function expression(beta)[i]"
ylab=parse( "Regression function",expression(beta),"[i]" )
でもできなくて案がつきました・・・~
お手数をおかけしますがよろしくお願いします。~
//
- plot(1, ylab=expression(paste(coefficient, " ", beta, g...
- demo(plotmath)でお勉強を -- &new{2010-05-19 (水) 12:44...
- 解答ありがとうございます! -- [[N/A]] &new{2010-05-19 (...
- 良い勉強材料ありがとうございます!Rの作図に詳しくなりた...
**R version 2.11.0のsummary.survfit関数 [#m941bc5b]
>[[nene]] (2010-05-17 (月) 16:54:23)~
~
//質問です。
Design, Hmisc, survival,cmprskの各パッケージを読み込んだ...
//
- 「とあるコード」なんて,もったいぶらないで,そのコード...
一般的には,summary(survfit の返すオブジェクト)のように使...
- お返事頂ける環境にないのかもしれませんが,元のコード(...
**クォート内の文字列処理 [#df79d07d]
>[[BURBUR]] (2010-05-15 (土) 11:55:27)~
~
//初歩的な質問ですが失礼します。~
フォルダ内のファイルを検索したい関数を実装したいのですが~
> test3 <- function(x) {
file<-list.files(path="./x")
return(file)
}
> test3(フォルダ名)
と実行するとpath名をクオートのでくくっているため
list.files: './x' は読めないディレクトリです
というエラーメッセージが出ます。~
これを防ぐ方法を教えて下さい。~
//
- なぜ,path に与えるときに "./x" としないといけないと思...
> test3 <- function(x) {
+ file <- list.files(x)
+ return(file)
+ }
> test3("foo")
[1] "bar" "bar2" "bar3" ...
とすればよいでしょう。test3 に与えるパスの指定方法はご存...
**ディレクトリ内のファイル処理 [#o453b972]
>[[ヨッシ]] (2010-05-14 (金) 16:17:19)~
~
//素人の質問で申し訳ないのですが教えてください~
perlではディレクトリ内のファイルを取得する場合~
opendir my $dir, "ディレクトリのパス" or die "$!";~
while(my $name = readdir $dir){
if($name =~ /.*\.sgml/){ #ディレクトリ内のファイル...
open F1, "ディレクトリのパス/$name" or die "$!";
my @lines = <F1>;
}
}
}
}
closedir $dir;
//
- 本当にごめんなさい。またまた全部書く前に投稿してしまい...
- ?dir -- &new{2010-05-14 (金) 17:09:06};
- setwd("ディテクトリのパス"); list.files()では如何? -- ...
- 助かりました^^ 貴重な意見ありがとうございます^^ --...
**2つの箱ひげ図を1つのグラフに [#b9a10014]
>[[アロバ]] (2010-05-12 (水) 09:45:56)~
~
//素人の質問で大変恐縮です。
par(mfrow=c(1,2))
x<-c(1.12,0,6.82,23.9,17.66,2.67,6.09,0.13,5,0.36,2.07,3...
107.91,80.05,0,21.66,45.33,0,57.51,103.7,40.62,110....
boxplot(x, names=c("x")) #箱ひげ図
y<-c(0,1.74,5.36,0,1.12,7.7,0.85,26.52,4.52,0.33,42.44,3...
boxplot(y, names=c("y")) #箱ひげ図
par(mfrow=c(1,1))
2種類のデータxとyを上記で入力したところ、1つのファイル...
質問1;この2つのグラフを共通の縦軸のグラフにするにはど...
質問2;それぞれのグラフの下に"x"、"y"と名前を入れる事は...
~
ご多忙のところ大変恐縮です、よろしくお願いします。~
使用環境は下記です。
R version 2.11.0 (2010-04-22)
i386-apple-darwin9.8.0
locale:
[1] ja_JP.UTF-8/ja_JP.UTF-8/C/C/ja_JP.UTF-8/ja_JP.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets me...
//
- mfrowを変えずに
boxplot(list(x=x, y=y))
ということで良いのでしょうか? -- &new{2010-05-12 (水) 1...
- うひょ!、出来ました。ほんとにありがとうございました。 ...
**Kaplan meier 生存曲線から任意の時間における生存率 [#uc...
>[[jb3]] (2010-05-11 (火) 21:58:13)~
~
2つ質問があります。~
datatableに
time event group
55 0 1
23 1 1
61 1 1
12 1 1
90 0 1
以下同様に200行の生存時間timeと、イベントeventに関するデ...
これを、読み込んで、<- datasetとして、Rの解説の本に書かれ...
> fitteddata <- Surv(dataset$time, dataset$event)
> sf <- survfit(fitteddata~group, data = dataset)
> plot(sf)
と実行すると、kaplan meier 生存曲線を描くことはできたので...
質問1~
もともと1グループしかないので、群分けはいらないと思い、上...
Survfit requires a formula or a coxph fit as the first a...
というエラーが出ます。単一群の生存曲線を描くのに、~group...
質問2~
任意の時間における、kaplan meier法による生存率を計算する...
~
Rを覚えたてで、2冊の解説書をみながら悪戦苦闘しています。~
よろしくお願いします。~
//
- 質問1に対して:いつの頃からか,そのような場合には,survf...
既出でしたね。[[survfitが使えません:http://www.okada.jp.o...
解説書は古い場合もあるので,挙動が違う場合は,最新の R を...
- 質問2に対しては,おそらくそのような関数は用意されていな...
群分けをしない場合は,河童の屁は,河童にあらず,屁である。...
sf <- survfit(fitteddata ~ 1, data = dataset)
とすると,sf$timeが経過期間,sf$survが生存率となります....
s <- stepfun(c(0, sf$time), c(1, 1, sf$surv))
群分けをした場合は,群ごとに経過期間と生存率を切り出して...
- ありがとうございました。質問1,2とも解決しました。ご...
**Rコマンダーでの層別化 [#aae41647]
>[[mtk]] (2010-05-09 (日) 20:52:56)~
~
MS Windows XP sp3上でRcmdrを使っています。~
%%ver.2.8.0では変数をcharacterに変更するだけで層別化の因...
ver.2.11.0でRcmdr 1.5-4を起動したところ,これでは認識され...
~
データ → アクティブデータセット内の変数の管理 → 数値...
~
で指定したところ認識されました。%%これは仕様の変更なのか...
もし%%仕様の変更なのでしたら%%層別化の便利な使い方があれ...
//
- > 層別化の便利な使い方があれば~
というのは,「今まで(R-2.8.0)のようにもっと簡単な指定法...
- そういう意味です。ところで「デーセットの編集」画面で日...
- お騒がせしましたが,上記の情報は誤りで,ver.2.8.0でも数...
**R commderの適合性検定 [#q891be22]
>[[sousou]] (2010-05-07 (金) 15:55:04)~
~
Rcmdrで適合性検定を行いたいですが、どうやってもうまく行か...
操作手順は分かりますが(統計量→要約→頻度分布→カイ2乗適合...
//
- どのようにやってうまくいかなかったのか分かりませんね。...
- 素早く返事いただき、ありがとうございます。おそらくデー...
- 使い方が間違っているのでは?~
あなたのデータでは,
X-squared = 15.8384, df = 1, p-value = 6.899e-05
となるはず。以下の例をご覧じろ。 -- [[河童の屁は,所詮屁で...
&ref(example999.png);
- なるほど、つまり私の例だと、val1のところにAを127回、Bを...
- > val1のところにAを127回、Bを71回を入力すればいいです...
A, B の個数が分かっているときは,そんな面倒なことは誰もし...
- ご親切でありがとうございました -- [[sousou]] &new{2010-...
**シェルスクリプト上でRによる解析 [#p284f9e2]
>[[まさお]] (2010-05-07 (金) 15:51:27)~
~
シェルスクリプト上でRによるさまざまな処理を行うには,どう...
#!/bin/csh~
R ~
でRは起動するんですけれど,そこで止まってしまいます.R内...
//
- シェルスクリプトに書かなくてもよいということならば,以...
やりたいこと(R プログラムを書いておく)
foo [11] > cat script
x <- 0
for (i in 1:5) x <- x+sqrt(i)
print(x)
それを動かす
foo [12] > R --vanilla --silent --fiile=script
> x <- 0
> for (i in 1:5) x <- x+sqrt(i)
> print(x)
[1] 8.382332
出力は,ファイルに出したりする方がよいでしょうけど。
- ヒアドキュメントが書きたいんでしょうかね。
2行目のEOFから最後のEOFの間にRスクリプトを入れます。
#!/bin/bash
R --slave --vanilla << EOF
jpeg("plot.jpg")
plot(sin, xlim=c(0,2*pi))
EOF
詳細は高階さんの『プログラミングR』を買いましょう。 -- &...
- [[Rscript]]を読まれて、さらにgetoptパッケージを導入され...
**linuxでR [#g3cc28f9]
>[[さっこ]] (2010-05-07 (金) 12:07:39)~
~
linux(GNU)にRを無事make installできたのですが(suで,/usr/...
//
- /usr/local/r-2.10.1/R とやって起動するようなら,パスが...
パスを通してもよいし,既にパスの通っているところからシン...
- どうもありがとうございました。 -- [[さっこ]] &new{2010-...
**Rでのファイル操作と繰返し文 [#e4a4cdf9]
>[[きりんさん]] (2010-05-04 (火) 11:17:02)~
Rで統計解析を行い,その結果をそれぞれの物質名ごとのファ...
これにループ処理を用いて,完成させたいのですがdir.create(...
他のプログラミング言語を用いずにRのみで行う方法はないで...
拙い質問ではありますが,ご教授のほどを宜しくお願い致し...
データフレーム(ROC_table1.csv)
Ala Ethanolamine phosphate Hypotaurine Pro Uridine Glyc...
C 551.6935 29.13754 16.681 173.8867 45.10912 50....
C 607.481 0 13.91893 168.1533 42.37981 8...
C 506.6699 28.35182 16.64904 159.7178 43.60009 299.7703
C 530.9984 20.93959 11.42694 236.6067 42.33055 0
C 466.6074 19.3733 14.7419 176.2133 41.4...
C 532.253 18.66473 12.15251 172.6138 40.66632 18...
C 449.6792 9.951401 11.69104 130.8715 47.65735 0
C 403.2724 19.33708 0 155.0835 47.37078 230.7595
C 423.5579 19.48771 11.05998 140.1291 38.48613 238.7741
C 463.7251 23.312 0 126.3421 43.01137 24...
C 465.0218 28.58722 10.97927 137.6295 37.42445 177.0466
C 485.2845 35.14039 7.268277 143.0229 37.97251 223.5736
D 707.1228 25.1555 11.25501 237.0575 37.70653 27...
D 658.9739 31.52341 14.1557 197.7347 33.66692 31...
D 475.4444 31.67994 11.48172 132.5917 41.70935 545.9441
D 613.6305 23.5282 12.38427 164.597 41.2...
D 545.5581 33.57919 21.21189 174.7159 43.30637 419.7285
D 848.2421 32.92102 16.18306 248.8493 30.06797 402.9233
D 507.675 25.12478 17.90848 185.7012 36.81457 31...
D 528.8479 20.10386 17.13785 196.1179 40.02536 126.3903
#データの読み込み
x <- read.csv("ROC_table1.csv", header=T)
data.frame(x)
#ROCソースコード
source("http://aoki2.si.gunma-u.ac.jp/R/src/ROC.R", enco...
#患者群データを格納
Dise <- (x$X=="D")
disease.x <- x[Dise,"Ala"]
#健常者群データを格納
Cont <- (x$X=="C")
normal.x <- x[Cont,"Ala"]
#物質名のフォルダを作成
dir.create("Ala")
#新規フォルダへのディレクトリ変更
Direct <- getwd()
Direct1 <- paste(Direct,"Ala",sep = "/")
setwd(Direct1)
#フォルダに計算結果を格納
RR <- ROC0(disease.x, normal.x)
write.table(RR, file="Ala.data", sep="\t", row.names=FAL...
#フォルダに図を格納
bmp(filename = "Ala.bmp", width = 480, height = 480)
ROC0(disease.x, normal.x)
dev.off()
#ディレクトリを元へ戻す
setwd(Direct)
//
- eval と parse 関数を調べると良いでしょう。以下のような...
Name <- "Ala"
eval(parse(text=paste("dir.create('", Name, "')", sep=""...
- 関数の使用例まで教えて頂き,ありがとうございます.おか...
**新しい目盛りとかぶる [#v7dfb38c]
>[[さつまいも]] (2010-05-03 (月) 20:23:20)~
~
初めにヒストグラムを作ってから、X軸の目盛りを変えると最初...
どうしたら最初の目盛りを消すことができますか?~
//
- よく状況が分かりませんが,最初にヒストグラムを描くとき...
- 状況の説明不足申し訳ありません。河童の屁は,河童にあら...
**英語でテキストマイニングをする方法。語の頻度,形態素に...
>[[ピースケ]] (2010-04-29 (木) 17:51:37)~
~
英語でテキストマイニングをする方法を探しています。。語の...
//
- いっぱいあると思うんですけど。関連する教科書(書籍)も...
- ※コメントありがとうございます。日本語は,書籍が見かけた...
- http://bit.ly/azDxgi -- &new{2010-04-30 (金) 10:00:21};
- コメントありがとうございます。誠に感謝致します。 他に...
- ↑↑のリンクのCRAN Task View: Natural Language Processing...
- アドバイスありがとうございます。 -- [[ピースケ]] &new{2010...
**R-2.11.0でtcltkウィジェットの日本語が文字化け [#z00bea0d]
>[[せーだ]] (2010-04-29 (木) 12:19:03)~
~
Win7 Pro/WinXP Pro SP2を使っています。~
R-2.11.0で両方とも再現しましたので投稿します。~
~
以下のサンプルは、R-2.10.1までは問題なく動作していました。~
しかし、2.11.0では、コンボボックス内の日本語だけが文字化...
require(tcltk)
tclRequire("BWidget")
tt <- tktoplevel()
tkgrid(tklabel(tt,text="好きな果物は?"))
fruits <- c("林檎","蜜柑","バナナ","梨")
comboBox <- tkwidget(tt,"ComboBox",editable=FALSE,values...
tkgrid(comboBox)
OnOK <- function()
{
fruitChoice <- fruits[as.numeric(
tclvalue(tcl(comboBox,"getvalue")))+1]
tkdestroy(tt)
msg <- paste(fruitChoice,"は美味しいよね",sep="")
tkmessageBox(title="Fruit Choice",message=msg)
}
OK.but <-tkbutton(tt,text=" OK ",command=OnOK)
tkgrid(OK.but)
tkfocus(tt)
2.11.0の新機能説明の項目の中に
Package tcltk now sends strings to Tcl in UTF-8: this me...
that strings with a marked UTF-8 encoding are supported in
non-UTF-8 locales.
とあったので、これが影響しているのでしょうか。~
また、このような文字化けは、BWidgetやTktable等、Tcl/Tkの...
~
もし対処法をご存知の方がいらっしゃれば、ご教示頂きたく存...
宜しくお願い致します。~
//
- 51862以降は直ってるはず -- &new{2010-04-30 (金) 12:16:...
- ありがとうございます。対応するR-2.11.0patがリリースされ...
- r51867をDLし、直っていることを確認しました。御礼申し上...
**エラー処理 [#tdf74597]
>[[josephine]] (2010-04-28 (水) 18:34:02)~
~
大量のデータをS-W検定するスクリプトを作っています。~
不適当な標本データが原因のS-W検定のエラーを上手く処理して...
~
入力が適切な例
> a
[1] 0 0 0 1 0 0 0
> try(shapiro.test(a), silent=TRUE)
Shapiro-Wilk normality test
data: a
W = 0.453, p-value = 4.136e-06
> s_shapiro_a <- try(shapiro.test(a), silent=TRUE)
> s_shapiro_a
Shapiro-Wilk normality test
data: a
W = 0.453, p-value = 4.136e-06
入力が不適切な例
> b
[1] 0 0 0 0 0 0 0
> s_shapiro_b <- try(shapiro.test(b), silent=TRUE)
> s_shapiro_b
[1] "Error in shapiro.test(b) : all 'x' values are ident...
attr(,"class")
[1] "try-error"
try-errorの場合にはNAをs_shapiro_bに代入したいのですが、...
//
- おそらく[[ここ:http://www.okada.jp.org/RWiki/?%C3%CE%A4...
- 別解として,Shapiro.Wilk.test <- edit(shapiro.test) と...
この方法だと,無駄な出力(タイトルとかデータの表示とか)...
> Shapiro.Wilk.test(letters) # 数値データでない
[1] NA
> Shapiro.Wilk.test(c(1, 2)) # 少なすぎるデータ
[1] NA
> Shapiro.Wilk.test(c(1, 1, 1, 1, 1, 1)) # 全部同じデータ
[1] NA
> Shapiro.Wilk.test(rnorm(10000)) # 多すぎるデータ
[1] NA
> Shapiro.Wilk.test(c(1, 4, 3, 6)) # 妥当なデータ
Shapiro-Wilk normality test
data: c(1, 4, 3, 6)
W = 0.9984, p-value = 0.995
- ご親切に教えて頂きありがとうございます。取り合えずはs_s...
**contourplotを白黒で書きたい [#l231a7a7]
>[[orange]] (2010-04-26 (月) 16:32:03)~
~
グラフィックス参考実例集にあるcontourplot("Cube Root Ozo...
//
- ?contourplotでcol.regionsが答えでは? -- [[akira]] &new...
- すみません.素人なもので.col.regions = trellis.par.get...
- そうですね〜。カラーで書かれた図をお絵かきソフトで読み...
まあ,意地悪だと思われるのも業腹だから,contourplot の ex...
require(stats)
attach(environmental)
ozo.m <- loess((ozone^(1/3)) ~ wind * temperature * radi...
parametric = c("radiation", "wind"), span = 1, de...
w.marginal <- seq(min(wind), max(wind), length.out = 50)
t.marginal <- seq(min(temperature), max(temperature), le...
r.marginal <- seq(min(radiation), max(radiation), length...
wtr.marginal <- list(wind = w.marginal, temperature = t....
radiation = r.marginal)
grid <- expand.grid(wtr.marginal)
grid[, "fit"] <- c(predict(ozo.m, grid))
contourplot(fit ~ wind * temperature | radiation, data =...
cuts = 10, region = TRUE,
xlab = "Wind Speed (mph)",
ylab = "Temperature (F)",
main = "Cube Root Ozone (cube root ppb)",
col.regions=gray(seq(0, 1, by=0.01))) # これ...
detach()
前の人の回答は,あなたに対して「オンラインヘルプで contou...
- akiraさん,河童さん,ありがとうございました.河童さんに...
**計算結果の抽出方法 [#i7aa3ebf]
>[[uribo]] (2010-04-25 (日) 22:43:10)~
~
forループで計算を1000回繰り返したのですが、その計算結果の...
恐らく意、はじめのforループ計算の値の最後の値のみを出す式...
//
- よく分かりませんが,for の最後の答えを取り出すのは,for...
> func <- function(n)
+ {
+ for (i in 1:n) {
+ x <- rnorm(1)
+ }
+ return(x)
+ }
> replicate(100, func(sample(10, 1)))
[1] 0.19487424 1.39857201 0.97981611 -0.45801807 0...
[6] -0.95167954 -1.96734801 1.77910267 -0.51803260 0...
途中省略
[91] 0.76621199 0.66828262 1.04878517 0.12996552 -0...
[96] 2.47874580 -0.39178534 0.73668553 1.81568251 1...
- スカラーというのは[]のことでしょうか?replicateですか、...
- ふつうの変数のこと(例では x)ですよ。 -- [[河童の屁]] ...
**多次元項目反応理論のパッケージ [#u1343c9a]
>[[totoro]] (2010-04-24 (土) 00:33:22)~
~
Rで多次元項目反応理論(多次元IRT)または多次元カテゴリカル...
~
解析例などを示しているページがありましたら、教えていただ...
//
- MCMCpackの中にMCMCirtKd というK次元IRTがあるのを見つけ...
**latticeで縦軸目盛の位置を左にそろえたい [#ecfbed18]
>[[itok]] (2010-04-19 (月) 20:46:34)~
~
VistaでR-2.8.0を使っております。最近latticeを勉強しており...
教科書の例題に以下のようなヒストグラムがありました。~
data(Chem97, package = "mlmRev")
library(lattice)
histogram(~gcsescore | factor(score), data = Chem97)
~
出力をみると、縦軸目盛が、1行目では右に、2行目では左に...
他の例題をみても、このように互い違いになるのが標準設定の...
希望としては、両方の行で、縦軸目盛を左に統一したいのです...
ヘルプを読んでみましたが、どのパラメータを設定すればよい...
どうかよろしくおねがいいたします。~
//
- わたしは,lattice なんて嫌いで,使ったこと殆どないけど。~
histogram(~gcsescore | factor(score), data = Chem97, sca...
scales パラメータの alternating 要素についての説明をご参...
このような出力でよろしいんですよね? -- [[河童の屁]] &new...
&ref(henokappa.png);
- ありがとうございました!そうです。そのとおりです。scale...
**主成分分析のスコアプロットでグループごとに色分けできま...
>[[にわか]] (2010-04-18 (日) 00:35:23)~
~
//お世話になります。~
主成分分析のスコアプロットで、データのグループごとに色分...
irisで~
.PC <- princomp(~PL+PW+SL+SW, cor=TRUE, data=iris)~
scoreplot(.PC,labels="names",cex=0.7,col=2)~
このようにラベル表示はできるのですが、グルーピングが分か...
どなたかご教示頂けたら助かります。~
よろしくお願いします。~
//
- scoreplot ってどのパッケージにあるんだろうか。また,PL ...
- 回答頂き有難うございました。変な省略形で書いてしまい申...
**GLMでLSMEANの計算 [#q7f6bd0f]
>[[Kita]] (2010-04-14 (水) 15:33:17)~
~
//Rを使い始めたばかりで、初めて投稿させていただきます。~
//~
SASの場合、GLM解析を行った場合、Least Square Mean(LSMEAN...
~
よろしくお願いします。~
//
- 残差平方和のことですね?残差は出るので、それを二乗して...
> a <- rnorm(100)
> b <- rnorm(100)
> res <- glm(b ~ a)
> summary(res)
Call: glm(formula = b ~ a)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.41666 -0.58843 0.03412 0.62652 1.93350
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.04376 0.09761 -0.448 0.655
a 0.07966 0.10726 0.743 0.459
(Dispersion parameter for gaussian family taken to be 0....
Null deviance: 93.823 on 99 degrees of freedom
Residual deviance: 93.298 on 98 degrees of freedom
AIC: 282.85
Number of Fisher Scoring iterations: 2
> names(res)
[1] "coefficients" "residuals" "fitted.valu...
[4] "effects" "R" "rank" ...
[7] "qr" "family" "linear.pred...
[10] "deviance" "aic" "null.devia...
[13] "iter" "weights" "prior.weig...
[16] "df.residual" "df.null" "y" ...
[19] "converged" "boundary" "model" ...
[22] "call" "formula" "terms" ...
[25] "data" "offset" "control" ...
[28] "method" "contrasts" "xlevels" ...
> sum(res$residuals^2)
[1] 93.2978
- Residual deviance: 93.298 というところに出ているのが,...
glm が返すオブジェクトの deviance 要素に入っています。上...
- ご返事ありがとうございます。Residual devianceとは違いま...
- あぁ、よく考えたら残差平方和は"Sum of Square"でしたね。...
> a <- rnorm(100)
> b <- rnorm(100)
> c <- rnorm(100)
> res <- glm(b ~ a*c)
> summary(res)
Call:
glm(formula = b ~ a * c)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.26867 -0.54240 -0.08402 0.54603 2.49951
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.03420 0.08595 0.398 0.692
a -0.12119 0.09144 -1.325 0.188
c 0.06217 0.08400 0.740 0.461
a:c 0.04987 0.08823 0.565 0.573
(Dispersion parameter for gaussian family taken to be 0....
Null deviance: 70.126 on 99 degrees of freedom
Residual deviance: 68.512 on 96 degrees of freedom
AIC: 255.97
Number of Fisher Scoring iterations: 2
これで交互作用項a*cが出ています。-- [[Saito]] &new{2010-0...
- 既出でしたね。[[ここにありますよ:http://www.okada.jp.or...
- 河童の屁さんから教わったところで問題解決しました。どう...
**すでにCRANから消えたパッケージをインストールする方法に...
>[[Saito]] (2010-04-08 (木) 23:03:40)~
~
//いつもお世話になっています。~
下のほうで、[[adapt関数以外で重積分をする方法について:htt...
少し前の話ですので、新しく質問をさせていただきました。~
~
あれから色々と勉強して、以下のようなサイトを見ながらやっ...
http://www.okada.jp.org/RWiki/?RcmdrPlugin%C4%B6%C6%FE%CC...
http://www.okada.jp.org/RWiki/?%BB%E4%C5%AA%A5%D1%A5%C3%A...
http://www.okada.jp.org/RWiki/?Windows%A4%C7R%A4%CE%A5%D1...
~
まず今回はすでにあるtarファイルを使いますので、最初から作...
cd c:\
R CMD INSTALL adapt_1.0-4.tar.gz
としましたが、以下のようなメッセージが出てしまい先に進め...
c:\>R CMD INSTALL adapt_1.0-4.tar.gz
* installing to library 'C:\Users\Saito\Documents/R/win6...
* installing *source* package 'adapt' ...
** libs
DLLフャ...
x86_64-w64-mingw32-gfortran -O2 -c adapt.f -o adapt.o
make: x86_64-w64-mingw32-gfortran: Command not found
make: *** [adapt.o] Error 127
... ョケ
ERROR: compilation failed for package 'adapt'
* removing 'C:\Users\Saito\Documents/R/win64-library/2.1...
* restoring previous 'C:\Users\Saito\Documents/R/win64-l...
~
これはフォートランの命令が読めない、というメッセージなの...
c:\>Path
PATH=c:\Rtools\bin;c:\Rtools\perl\bin;c:\Rtools\MinGW\bin;
C:\Program Files (x86)\HTML Help Workshop;
C:\Program Files\R \R-2.11.0alpha-x64\bin;
C:\Program Files (x86)\MiKTeX 2.8\miktex \bin;
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\
となっています。~
~
ちなみにOSはWindows7、Rのバージョンは、R-2.11.0alpha-x64...
自分では手詰まりになってしまって、解決できませんでした。...
~
どうぞよろしくお願いいたします。~
//
- 早速の回答ありがとうございました。(あれ?消えてしまい...
すぐにコンパイルで調べたら他にもこのような[[サイト:http:/...
しかし、あり得ないことだと思うのですが、[[教えていただい...
要はexeファイルが見つかればいいのかと思い、解凍したフォル...
ちなみにperlやgccはRtoolに入っていますし、64bit版だと新し...
ちなみに今のPathは
c:\>Path
PATH=C:\mingw\mingw-w64-crt;C:\mingw\bin;C:\msys\1.0\bin...
c:\Rtools\MinGW\bin;C:\Program Files (x86)\HTML Help Wo...
C:\Program Files (x86)\MiKTeX 2.8\miktex\bin;C:\Windows\...
C:\Windows\System32\WindowsPowerShell\v1.0\
と、少しづつ汚くなってきています…。
もし何かお気づきの点がありましたら、ご助言いただけると幸...
- Command not found って、x86_64-w64-mingw32-gfortranて...
- ご助言ありがとうございます。手でたたくとは、具体的にど...
c:\Rtools\MinGW\bin
の中にはgfortranというファイルは置いてあるのですが…。試し...
PATH=C:\x86_64\w64\mingw32;C:\mingw\mingw-w64-crt;C:\min...
\bin;c:\Rtools\bin;c:\Rtools\perl\bin;c:\Rtools\MinGW\bi...
(x86)\HTMLHelp Workshop;C:\Program Files\R\R-2.11.0alpha...
Files (x86)\MiKTeX 2.8\miktex\bin;C:\Windows\system32;C:...
\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
すみません、いまだに解決していません。まだ何かお気づきの...
- コンソールのプロンプトに対して gfortran と入力したらど...
- ご助言ありがとうございます。Rは立ち上がります。以下がそ...
C:\Users\Saito>R
R version 2.11.0 alpha (2010-04-06 r51611)
Copyright (C) 2010 The R Foundation for Statistical Comp...
ISBN 3-900051-07-0
RヘAゥRネ\tgEFAナAuョSノウロリvナキB
フノ]ヲホAゥRノアトzzキアニェナォワキB
zzフレラノヨオトヘA'license()'「ヘ'licence()'ニヘオトュセウ「B
Rヘスュフv」メノ、ッvWFNgナキB
レオュヘ'contributors()'ニヘオトュセウ「B
ワスARRフpbP[Woナィナpキロフ`ョノツ「トヘ
'citation()'ニヘオトュセウ「B
'demo()'ニヘキホfンアニェナォワキB
'help()'ニキホICwvェoワキB
'help.start()'ナHTMLuEUノwvェンワキB
'q()'ニヘキホRIケオワキB
> rnorm(10)
[1] -0.8424220 -0.4483672 -1.2258821 0.1038380 -0.8283...
[7] 0.1248794 -1.9883918 0.2761847 1.2740648
>
ただ、gfortranとやると、
C:\Users\Saito>gfortran
gfortran: no input files
と出てしまいます。Pathがうまくつながっていないのでしょう...
- no input files というのは、コマンドの後にコンパイルすべ...
私の場合,Rtools をインストールし,path に R へのパスを追...
64ビット版を作ろうとしているのでしょうか?そうであったと...
なお,実行例2行目にも書いてありますが,adapt.dll は,マイ...
&ref(install-adapt.png);
- ご助言ありがとうございます。しかし、何度も再起動、アン...
C:\Users\Saito\Downloads>R CMD INSTALL adapt_1.0-4.tar.gz
* installing to library 'c:/PROGRA~2/R/R-210~1.1/library'
G[F G[FfBNgヨフCXg[ツェワケ 'c:/PROGRA~2 /R/R-210~1.1/libra...
一応河童の屁さんの言うとおり、Rtoolsを再インストールして...
ひょっとしたら64bitに入れるのがそもそもムリなんじゃないか...
以下が現在のパスです。もちろんRやgfortranと打てば、上記の...
PATH=c:\Rtools\bin;c:\Rtools\perl\bin;c:\Rtools\MinGW\bi...
(x86)\R\R-2.10.1\bin;C:\Windows\system32;C:\Windows;C:\W...
C:\Windows\System32\WindowsPowerShell\v1.0\
環境はWindows7なのですが、もしよろしければうまく行った動...
- 失礼しました,Saito さんは x64 R-2.11.1 Pre-release に...
- いえいえ。動作確認していただいて本当にありがとうござい...
将来的にはやはり(私個人の利用する範囲で)なくてはならない...
**相関行列からクラスタ解析 [#j8957909]
>[[KM]] (2010-04-07 (水) 16:28:46)~
~
相関行列を類似度行列としてクラスタ解析したいと考えていま...
hclust()にas.dist(x)という形で読み込みたいのですが、hclus...
−1x相関係数を非類似度として読み込んでみましたが、hang=-1...
~
以下の2点いずれかができれば解決すると思うのですが、いか...
・類似行列のクラスタ解析ができる方法を実行~
・hclustでラベルを揃える位置を0以外の位置に指定する~
~
よろしくお願いします。~
//
- 相関係数行列をクラスター分析に用いるには,相関係数行列...
> (r <- cor(iris[,1:4]))
Sepal.Length Sepal.Width Petal.Length Petal...
Sepal.Length 1.0000000 -0.1175698 0.8717538 0.8...
Sepal.Width -0.1175698 1.0000000 -0.4284401 -0.3...
Petal.Length 0.8717538 -0.4284401 1.0000000 0.9...
Petal.Width 0.8179411 -0.3661259 0.9628654 1.0...
> (d <- as.dist(2*(1-r)))
Sepal.Length Sepal.Width Petal.Length
Sepal.Width 2.23513957
Petal.Length 0.25649245 2.85688021
Petal.Width 0.36411775 2.73225187 0.07426914
> plot(hclust(d), hang=-1)
&ref(r-cluster.png);
- すばやい、丁寧なご説明ありがとうございます。試してみた...
- 相関係数だからですよ。相関係数の定義と距離の定義を考え...
- ありがとうございます。勉強になりましたm(_ _)m -- [[KM]]...
**optim関数について [#n2ac304c]
>[[あ〜る]] (2010-04-07 (水) 11:19:57)~
~
//お世話になっております。~
//~
Rのoptim関数と同じ関数をjavaで計算したく、javaのlibraryで...
また、javaで完結しているコード(他の言語を呼び出したりしな...
~
実際に計算したいのは、L-BFGS-B法ですが、javaのlibraryでは...
~
もしご存知の方がいらっしゃったらご教示ください。~
よろしくお願いいたします。~
//
**maptoolsを使った地図グラフ作成について [#p1b8aebb]
>[[kojiro_i619]] (2010-03-31 (水) 13:50:28)~
~
お世話になります。中澤先生の本から、以下
gnm <- readShapePoly("gunma.shp")
gnmdata <- gnm$att.data
gnmpoly <- map2SpatialPolygons(gnm, region.id=att(gnm, "...
## <−これがうまくいきません。
gunmadata <- gnmdata
gunmapoly <- gnmpoly
aged <- read.delim("agedprop.txt")
gunmadata <- merge(aged, gunmadata, sort=F, by="JCODE")
DD <- gunmadata$AP2006
classes <- cut(DD, seq(min(DD), max(DD), length=5), incl...
cols <- topo.colors(4)
plot(gunmapoly, col=cols[ordered(classes)], xlab="", yla...
legend(max(x)-0.3*(max(x)-min(x)), min(y)+0.1*(max(y)-mi...
legend=names(table(classes)), cex=0.6,fill=cols)
title("群馬県市町村の65歳以上高齢者割合4区分(2006年)")
text(x, y, gunmadata$CITY1, cex=0.5, pos=1, offset=0)
などと、作ったのですが、途中の命令が、ないようです。~
見本のコードでも、教えていただければ、幸いです。~
//
- すみません。maptoolsのバージョンアップにより,以前あっ...
- 最低限の代替コードと説明を[[書籍のサポートサイト:http:/...
**forループの高速化 [#c725a2fb]
>[[rbegginer]] (2010-03-30 (火) 21:27:26)~
~
いつも勉強させていただいております。~
以下のプログラムについて、高速化のコツ、ヒントなどをいた...
~
以下のようなプログラムで、1千万の母集団から5サンプルの抽...
5サンプルが終わったら6,7,8...100とサンプルサイズを変えて...
~
実はサンプル抽出を1000回ではなく10000回行いたいのですが、...
時間がかかっていると部分、高速化できるような書き方があり...
こちらのTipsでforは時間がかかるという記述を読みましたが、...
どうぞよろしくお願いします。環境はWindowsVista, R2.10.1で...
pop <- round(rnorm(10000000, mean=300, sd=20)+(300*rexp(...
ssz <- c(5,6,7,8,9,10,15,20,25,35,50,100) # 抽出するサン...
nrecv <- 0
nremv <- 0
for(j in 1:length(ssz)) {
for(i in 1:1000){
svct <- sample(pop, ssz[j])
gmean <- mean(svct)
gsd <- sd(svct)
cfv.u <- gmean+(3*gsd) # 外れ値のカットオフポイン...
cfv.l <- gmean-(3*gsd) # 外れ値のカットオフポイン...
tmp <- svct
tmp[tmp>cfv.u] <- NA # 外れ値除去
tmp[tmp<cfv.l] <- NA # 外れ値除去
svct.el <- tmp
nrecv[i] <- mean(svct.el, na.rm=T) # 外れ値除去後...
}
nremv[j] <- mean(nrecv) # 1000個の平均値の平均
}
//
- covct3 の値はいかほど? -- [[河童の屁]] &new{2010-03-30...
- 申し訳ありません。修正ミスでした。"3"に修正しました。実...
- 他の記事でも書きましたけど,for が apply や sapply など...
prog3 <- function()
{
set.seed(666)
# pop <- round(rnorm(10000000, mean=300, sd=20)+(300*rex...
ssz <- c(5,6,7,8,9,10,15,20,25,35,50,100) # 抽出するサ...
n <- length(ssz)
m <- 5000
nrecv <- numeric(m)
nremv <- numeric(n)
covct3 <- 1
for(j in 1:n) {
pop <- matrix(round(rnorm(ssz[j]*m, mean=300, sd=20)+
(300*rexp(ssz[j]*m))), ssz[j]) # ...
gmean <- colMeans(pop)
gsd <- sd(pop)
cfv.u <- gmean+(covct3*gsd) # 外れ値のカットオフポイン...
cfv.l <- gmean-(covct3*gsd) # 外れ値のカットオフポイン...
for (i in 1:m) {
svct <- pop[,i]
svct <- svct[cfv.l[i] < svct & svct < cfv.u[i]]
nrecv[i] <- mean(svct)
}
nremv[j] <- mean(nrecv) # m 個の平均値の平均
}
return(nremv)
}
> system.time((ans <- prog3()))
ユーザ システム 経過
7.881 0.127 8.041
> ans
[1] 527.4018 530.2227 530.0385 530.0244 528.1573 530.5734
[7] 525.2133 524.3569 523.8537 520.2583 518.8018 516.8923
- 河童様、大変素晴らしいコードをありがとうございます。無...
河童様のコードで実行していこうと思います。また、関数の形...
心から感謝いたします。 -- [[rbegginer]] &new{2010-03-30 (...
- Rのcompilerがありますが既にお使いですか? -- [[のざわ]]...
- compilerは使っていません。のざわ様のレスで初めてそれを...
- cranにないんですね>compiler。というかwindows用がないん...
- 行儀が悪くても良いならcompilerの中身はRのスクリプトなの...
- compilerは、ループが、だいたい3倍早くなります。それ以...
- 河童さまのプログラムをcompilerに掛けてみました。 user...
- のざわ様、わざわざありがとうございます。そうするとやは...
**岡田昌史編 The R Book CD-ROM について [#aa9c1143]
>[[kojiro_i619]] (2010-03-29 (月) 13:10:05)~
~
CD−ROMの内容をロードするWEBサイトがありましたら、...
//
- CD−ROMは手に入りました。Rmapがなぜかzipファイルか...
- 現行RではRmapは使えないことが、わかりました。 -- [...
- Rmapじゃなくてmaptoolsを使いましょう -- [[okinawa]] &ne...
- maptoolsをインストールして、library(maptools)としても、...
- winVistaでR2.10.1を使っています。 -- [[kojiro_i619]] &n...
- [[Q&A (初級者コース)/11:http://www.okada.jp.org/RWik...
- 私も見つけました。金先生の「maptoolsのクラス・オブジェ...
- > Ola$att.data<-cbind(Ola$att.data,high.low)で、属性情...
- get.Pcent( ),Map2polyの両方とも、最新のmaptoolsには使...
**anova(lm(count~spray))でdim(X) must have a positive len...
>[[にわか]] (2010-03-28 (日) 00:06:36)~
~
//お世話になります。~
winXPでR2.10.1を使っています。~
線形モデルの結果にaov、anovaを用いた分散分析を行うと、ano...
いろんな所(たとえばhttp://www1.doshisha.ac.jp/~mjin/R/15...
漠然とした質問で恐縮ですが、どのようなところに問題ありそ...
よろしくご教示いただけたら幸いです。~
//
- count, spray は InsectSprays にあるやつですか?だとすれ...
以下のようにすれば,エラーは出ませんけどね? -- [[河童の...
> anova(lm(count~spray, data=InsectSprays))
Analysis of Variance Table
Response: count
Df Sum Sq Mean Sq F value Pr(>F)
spray 5 2668.8 533.77 34.702 < 2.2e-16 ***
Residuals 66 1015.2 15.38
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1...
- 河童の屁さん、有り難うございます。まず、attach(InsectSp...
**mac osx 10.6.2 で RPostgreSQLパッケージをロードできま...
>[[jiro]] (2010-03-25 (木) 23:11:55)~
~
OS: mac osx 10.6.2( intel mac core 2 duo )~
R ver: 2.10.1(32bit、64bit ともにインストール)~
PostgreSQL ver: 8.3.1~
~
上記の環境にて、R言語からPostgreSQLに接続しようとしていま...
DBIのver 0.2-5 を install.package(DBI) コマンドにてインス...
$> sudo R CMD INSTALL RPostgreSQL_0.1-6.tar
途中、
rawToChar(magic[1:5])中で警告がありました:
文字列をnullに切り詰めました: 'Rpo\0\0'
という警告がでたもののインストールには成功したようです。~
さて、Rのコンソールから、
> library( RPostgreSQL )
と実行すると下記のメッセージが表示され、パッケージのロー...
64ビット版で失敗しているようなので、この問題の解決方法か...
~
よろしくお願いします。
Error in dyn.load(file, DLLpath = DLLpath, ...) : ~
共有ライブラリ '/Library/Frameworks/R.framework/Resour...
libs/x86_64/RPostgreSQL.so' を読み込めません
dlopen(/Library/Frameworks/R.framework/Resources/library/
RPostgreSQL/libs/x86_64/RPostgreSQL.so, 6):
Symbol not found: _PQbackendPID
Referenced from: /Library/Frameworks/R.framework/Resour...
RPostgreSQL/libs/x86_64/
RPostgreSQL.so
Expected in: flat namespace
in /Library/Frameworks/R.framework/Resources/library/RPo...
エラー: 'RPostgreSQL' に対するパッケージもしくは名前空...
//
- 自分でやってみたわけではないので恐縮ですが、 http://cod...
- やってみましたが進展なしでした。埒があかないのでRpgSQL...
**PLS回帰用のNIRデータの構造(再) [#e4b4ab4a]
>[[にわか]] (2010-03-24 (水) 16:07:09)~
~
標記の題名で11でお世話になった者です。~
クリアに解決しましたので、投稿しておきます。~
説明変数がマトリックスの場合には、protect関数(?) のI()を...
例)
y <- c(2, 4, 6)
z <-matrix(1:12, 3, 4)
mydata <- data.frame(Y=y, Z=I(z))
以上、お世話になりました。~
//
- mydata<-data.frame(Y=y) ; mydata$Z<-z でもいいようです...
**コンソールの内容を保存するコード [#of17b8c2]
>[[rbeginner]] (2010-03-20 (土) 14:07:10)~
~
いつも勉強させていただいています。~
~
コンソールに表示される命令と出力を全て保存する関数はある...
メニューからファイル -> ファイルを保存 を選ぶとlastsave....
理想はsink(... append=T, split=T) のように逐一保存したい...
~
どうぞよろしくお願いいたします。~
//
- このサイト内の「R出力の記録」ページが参考になる? -- &...
- 申し訳ありません。環境を伝え忘れておりました。WindowsVi...
- キーワード "yatee" でネット検索。Windows で Unix の tee...
- ご回答ありがとうございます。コマンドプロンプトからRを使...
**GLMによる予測値の予測区間の求め方 [#ede61550]
>[[saka]] (2010-03-19 (金) 13:29:49)~
~
//初めて投稿させていただきます。どなたか教えて頂けますよ...
//~
GLMでガンマ分布とlogリンク関数を使って,将来の魚の漁獲量...
~
推定値の信頼区間ではなく,それより広い範囲になることが多...
~
来年の予測漁獲量は○トンくらいだけど,95%の確率で○〜○トン...
~
GLMで解析するデータは下のようなものです。~
~
これに,例えば新たに説明変数1,2,3がそれぞれ(12,5,1500...
よろしくお願いします。
目的変数 説明変数1 説明変数2 説明変数3
7553 11.1 0.6 2240
14897 13.0 1.6 1292
30957 12.6 6.2 972
35056 9.7 26.2 2655
17436 11.4 9.4 547
4656 14.0 0.2 820
6879 12.3 0.0 1223
41853 13.9 4.4 2043
16308 12.1 4.8 1875
11293 11.8 3.0 1363
3964 10.2 9.8 236
7993 13.1 0.5 1236
6748 11.5 0.2 2144
3522 12.2 0.0 758
15395 10.5 7.6 1601
7567 11.3 6.0 1175
5823 10.7 4.4 880
以上です。~
//
- 管理者の方へ、投稿内容をきれいに整理していただき、あり...
- [[surg]] &new{2010-03-20 (土) 16:01:46};
> data <- data.frame(
+ y = c(7553, 14897, 30957, 35056, 17436, 4656, 6879, 4...
+ 16308, 11293, 3964, 7993, 6748, 3522, 15395, 7567, 5...
+ x1 = c(11.1, 13, 12.6, 9.7, 11.4, 14, 12.3, 13.9, 12....
+ 10.2, 13.1, 11.5, 12.2, 10.5, 11.3, 10.7),
+ x2 = c(0.6, 1.6, 6.2, 26.2, 9.4, 0.2, 0, 4.4, 4.8, 3,...
+ 0.5, 0.2, 0, 7.6, 6, 4.4),
+ x3 = c(2240, 1292, 972, 2655, 547, 820, 1223, 2043, 1...
+ 1363, 236, 1236, 2144, 758, 1601, 1175, 880)
+ )
>
> data.glm <- glm(y ~ x1 + x2 + x3, family = Gamma(log),...
>
> data.prd <- predict(data.glm, newdata=data.frame(x1=12...
+ se.fit=TRUE)
>
> exp(data.prd$fit)
1
13082.80
> exp(data.prd$fit - 1.96 * data.prd$se.fit)
1
10336.17
> exp(data.prd$fit + 1.96 * data.prd$se.fit)
1
16559.29
- surgさん、回答を有難うございました。大変申し訳ないです...
- > 管理者の方へ、投稿内容をきれいに整理していただき、あ...
そんな編集は,投稿者がやるべき事です。管理者がやったもの...
それと,あなたがやるべきことは,データだけを示すことでは...
- 説明不足の投稿内容で申し訳ありませんでした。また、投稿...
- 質問投稿にプログラムがなくてすみませんでした。データを...
- だれだか知りませんが、たしなめる言葉もいい加減にしない...
- この投稿で不愉快な思いをさせてしまった方には本当に申し...
- 質問の意図を取り違えておりました。線形モデルでは残差の...
- surgさん、追加の説明をありがとうございました。GLMの場合...
**対応のある比率の検定? [#r033a4f5]
>[[にわか]] (2010-03-17 (水) 23:31:15)~
~
//お世話になります。~
ある植物を植えたときに、処理Aと処理Bで活着率に差がある...
各時期に処理A,Bとも30株ずつ植えたうち、表の株数が活...
~
<各30個体を植えたときの活着した株数>~
時期1 時期2 時期3 時期4~
処理A 14株 13株 10株 15株~
処理B 15株 14株 13株 16株~
~
この場合、処理A、Bのどちらが活着に有効かを検定する場合...
prop.test(c(10,19),c(30,30))~
というように比率の検定をすればいいと思うのですが、~
全体で見る場合、単に合計で 52/120 と 58/120 の比率の...
あるいは、「対応のある比率の検定」のようながあるのでしょ...
どなたかご教示下さい。~
よろしくお願いします。~
//
- 時期を層と考えて Mantel-Haenszel で活着のオッズ比が有意...
- X1 を処理、X2 を時期、Yは活着したかどうか、としてロジス...
- ご教示、有り難うございます。マンテル・ヘンツェルの方、...
- ところで、活着株数あるいは活着率の数字を使って、対応の...
- t 検定を使う上での仮定(独立,母集団は正規分布)はクリ...
- 有り難うございます。どちらも独立性も正規性も検定すると...
**adapt関数以外で重積分をする方法について [#effd9bbc]
>[[Saito]] (2010-03-13 (土) 15:10:03)~
~
//いつもお世話になっております。~
あちこち調べ、自分でも試したのですが、わからなかったので...
~
最近(といっても数ヶ月前)にCRANからadaptパッケージが消え...
今まで重積分をするときにはadaptを使って積分していたので、...
~
しかし、2.10.0以降になると以下のようにre-installを求めら...
> library(adapt)
エラー: package 'adapt' was built before R 2.10.0: plea...
~
re-installしようにもCRANにないのでできません。そこで仕方...
~
どなたか、解決策をご存知でしたらご教授願えないでしょうか。~
なお、環境はWindows 7、x64 R-2.11.1 Pre-releaseです。
//
- 2.10.0より古いRを使えばいいと思います。 -- &new{2010-0...
- 回答ありがとうございます。確かに、現在はそうしているの...
- 新しいバージョンのRに対するバイナリがないだけなので、自...
- 回答ありがとうございます。~
やり方を聞く限りでは今までやったことがないことのようです...
**prcompを用いた固有値・固有ベクトルの計算について [#n758...
>[[初心者]] (2010-03-10 (水) 00:24:41)~
~
prcompを使用して固有値・固有ベクトルを算出しているのです...
・Rの出力
> A <- matrix(c(0, -4, 4, 1, 4, -3, 1, 2, -1), nrow=3)
> A
[,1] [,2] [,3]
[1,] 0 1 1
[2,] -4 4 2
[3,] 4 -3 -1
> prcomp(A, scale=F, center=F)
Standard deviations:
[1] 5.579673e+00 9.312648e-01 1.184667e-16
Rotation:
PC1 PC2 PC3
[1,] -0.7093545 -0.6210515 -0.3333333
[2,] 0.6431273 -0.3767530 -0.6666667
[3,] 0.2884500 -0.6872788 0.6666667
・参考にしたURL~
http://www004.upp.so-net.ne.jp/s_honma/urawaza/eigenvecto...
このページによると固有値は0,1,2となるはずなのですが、何か...
Windows XPで R2.8.1 を使用しています。~
//
- さきほどの初心者です。すみません、投稿が汚いですね。取...
- 整形しました -- [[他の初心者(下の質問者)]] &new{2010-...
- eigen(A)でリンク先と同等の結果になると思います。 -- &n...
- 蛇足ですが解説しておきましょうか。質問者が得た結果は,...
> # prcomp(A, scale=F, center=F) で実行されること
> A <- matrix(c(0, -4, 4, 1, 4, -3, 1, 2, -1), nrow=3)
> B <- t(A)%*%A/(nrow(A)-1)
> ans <- eigen(B)
> sqrt(ans$values) # Standard deviations:
[1] 5.579673e+00 9.312648e-01 2.267999e-08
> ans$vectors # Rotation:(列単位で符合は任意)
[,1] [,2] [,3]
[1,] 0.7093545 0.6210515 -0.3333333
[2,] -0.6431273 0.3767530 -0.6666667
[3,] -0.2884500 0.6872788 0.6666667
- 質問者は、prcompというより主成分分析をどういうものかを...
- 固有値・固有ベクトルを求めるために主成分分析を使うとい...
- だからprcompが何をするのか知っての質問だと思い、最終目...
- 「prcompを用いた固有値・固有ベクトルの計算」とあるわけ...
- 素早いご返信ありがとうございました。あまり内容を知って...
**Rの正規表現について [#cc20902e]
>[[初心者]] (2010-03-10 (水) 00:04:04)~
~
Windows VistaのR-2.10.1です.(Rの他のバージョン,他のOS...
~
例えば,「何章」や「何節」もしくは「番号のみ」(いずれも1...
section <- c("1", "23", "4部", "56部", "7章", "89章")
section <- c(section, "1", "23", "4節", "56節")
sub("([[:digit:]]{1,2})[^[:digit:]]?", "\\1", section)
でしてみましたが、結果が
[1] "1" "23" "4部" "56" "7章" "89" "1" "...
のようになってしまいました.~
どのようにしたら,うまく番号だけ抜き出せるのでしょうか?
また何が原因なのでしょうか?? 宜しくお願いいたします.~
//
- chartr("[0-9]","[0-9]",gsub("^([0-90-9]+).*$", "\\1...
- chartr関数って知りませんでしたので,とても良いものを教...
私は言語を勉強したことがないので,内部に何が使われている...
[:digit:]というのは,私が試した結果は全角数字は対応してい...
ありがたくコード使わせていただきます.ありがとうございま...
- CSIで4byte使うような環境の事を全く考えて無いんです(それ...
- ありがとうございます。知らない用語もありましたので調べ...
**listオブジェクトのgrepについて [#lb84f496]
>[[R初心者]] (2010-03-09 (火) 10:36:33)~
~
R-2.10.1をWindows Vistaで使用しています。~
mylist <- list(alph=letters, Alph=LETTERS, num=as.charac...
grep("A", mylist, ignore.case=FALSE) # (1)
grep("C", mylist, ignore.case=FALSE) # (2)
grep("c", mylist, ignore.case=FALSE) # (3)
ここで、(1)と(2)などpatternが(3)の "c" 以外のgrepの挙動は...
しかし、(3)のgrepの挙動がおかしい(私が望んでいるものでは...
本来ならば 1 が帰ってきて欲しいのですが、 c(1,2,3) が帰っ...
1 と帰ってくるような手立てはございますでしょうか?
また、これはバグなのでしょうか?~
grep以外の関数での解決方法でも結構です。よろしくお願いい...
//
- こんなので良い? listはstructureした文字列になるのでc("A...
lgrep<-function (pattern, x, ignore.case = FALSE, extend...
value = FALSE, fixed = FALSE, useBytes = FALSE, inve...
unlist(lapply(mylist, function(x) !(!length(grep(pat...
x, ignore.case, extended, perl, value, fixed, us...
invert))))) }
lgrep("c",mylist,ignore.case=FALSE)
alph Alph num
TRUE FALSE FALSE
- 戻り値を整えて,以下のように -- [[河童の屁]] &new{2010-...
> lgrep<-function (pattern, x, ignore.case = FALSE, exte...
+ value = FALSE, fixed = FALSE, useBytes = FALSE, in...
+ unname(which(sapply(mylist, function(x) length(gre...
+ x, ignore.case, extended, perl, value, fixed, ...
+ invert)))==TRUE)) }
> #
> lgrep("A", mylist, ignore.case=FALSE) # (1)
[1] 2
> lgrep("C", mylist, ignore.case=FALSE) # (2)
[1] 2
> lgrep("c", mylist, ignore.case=FALSE) # (3)
[1] 1
- ご返信ありがとうございます!~
structureしたというのがまだよく分かりませんが,属性がセッ...
試しにlistの中にdeta.frameを入れて、data.frameなどでgrep...
まだ,structureした後、なぜcが全部にひっかるのかわかりま...
しかしながら、皆さまのお陰で、期待する動作を得ることがで...
- ああ、「c(...)」全体が検索対象なんですね。「\\(」でもひ...
本当にありがとうございました。 -- [[R初心者]] &new{2010-0...
- 1行なら
sapply(mylist,function(x,y) length(grep(y,x))>0,y="A")#...
seq(mylist)[sapply(mylist,function(x,y) length(grep(y,x)...
とか。でも、length(grep(y,x))>0は美しくないね。 -- [[akir...
- ありがとうございます! 皆さまのコードを拝見するとなる...
以下、本来の目的にあったものではありませんが、grepで引っ...
a <- c("A", "B", "CD")
y <- 3:9
x <- data.frame(a=(1:4), b=c("a","b","c","d"), value=c(T...
x <- list(a=a, num=y, data=x)
# 関数の定義
lgrep <- function(pattern, x, ...,
classes = "ANY", deflt = NULL,
how = c("unlist", "replace", "list" )) {
rapply(x, function(x, pattern, ...) grep(pattern, x, ....
classes=classes, deflt=deflt, how=how, pattern=...
}
lgrep("\\<A\\>", x, how="list", deflt=NA)
structureですが、やっぱりよくわかりません・・・。なぜ、da...
- 1行で頑張るなら、
lapply(x, function(x,y) apply(as.matrix(x),2,function(x,...
こんな感じかな。もっと入れ子構造ならrapplyを使うのでしょ...
- ありがとうございます! 私はapply系関数を自分でうまく使...
できることは、他人様のコードを見て、自分なりに少し修正す...
英語も全くできないので、マニュアルも苦労しながら読んでい...
apply系関数の中に、apply系関数をいれるなんてことは完全に...
ありがたくapply系関数の勉強にも使わせていただきます!~
ありがとうございました。 -- [[R初心者]] &new{2010-03-10 (...
ページ名: