- 1 名前:132人目の素数さん mailto:sage [2011/01/09(日) 17:31:49 ]
- R は統計計算とグラフィックスのための言語・環境です。
統計計算で重宝するデータ型や、複数要素を処理する演算や関数、 解析結果を表示するグラフィックなど、多彩な機能を提供します。 ●関連サイト The R Project www.r-project.org/ RjpWiki www.okada.jp.org/RWiki/ リンク集 www.okada.jp.org/RWiki/?%A5%EA%A5%F3%A5%AF%BD%B8
- 519 名前:132人目の素数さん mailto:sage [2012/05/19(土) 09:22:50.09 ]
- >>518
ヒントを差し上げるので自力で考えてください。 > length(grep("a",c("b", "c", "d", "f"))) [1] 0 > length(grep("a",c("a", "b", "d", "f"))) [1] 1 > length(grep("a",c("a", "a", "d", "f"))) [1] 2 行単位で処理を繰り返す関数はapply()
- 520 名前:132人目の素数さん mailto:sage [2012/05/19(土) 15:06:19.07 ]
- # apply()を使わない手を考えようとしたが無理だった。
a1 <- c("a","b","d","f") a2 <- c("b","a","f","c") a3 <- c("z","m","f","a") dat <- cbind(a1,a2,a3) dat dat == "a" margin.table(dat == "a", margin = 1) apply(dat == "a", MARGIN = 1, FUN = sum)
- 521 名前:132人目の素数さん mailto:sage [2012/05/19(土) 15:15:20.42 ]
- >>520
おぉ、それなら、 > rowSums(dat == "a") [1] 1 1 0 1 もうこれでよさそう。 もう少し大きなテーブルでやってみると、 > d <- cbind(sample(letters[1:5],100,replace=TRUE),sample(letters[1:5],100,replace=TRUE),sample(letters[1:5],100,replace=TRUE)) > rowSums(d == "a") [1] 1 1 0 0 1 0 0 1 0 0 2 0 1 0 2 0 0 1 2 0 0 0 1 0 1 1 1 1 1 1 3 1 1 2 0 1 1 [38] 0 2 0 2 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 2 0 2 0 0 1 0 0 [75] 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 2 0 1 0 大丈夫そうだ。 # ヒントだけのつもりだったのに。。。
- 522 名前:132人目の素数さん mailto:sage [2012/05/19(土) 16:52:03.11 ]
- >>521
その手があったか。 速度的には rowSum() が有利と思われる。
|

|