前提・実現したいこと
Rのfor loopについて質問があります。
例えば、このような4つのコードをfor loopで簡略化したいです。
c1 <- tajima.test(data_snps[cluster1_acc,]) c2 <- tajima.test(data_snps[cluster2_acc,]) c3 <- tajima.test(data_snps[cluster3_acc,]) c4 <- tajima.test(data_snps[cluster4_acc,])
一旦このようにしてループを書いてみました。
for (i in 1:4){ ci <- tajima.test(data_snps[cluteri_acc,])}
しかし、"i"はデータフレーム名として認識されてループに組み込むことが出来ません。
このように、文字の上にあるiをloopのものと認識させる方法はあるのでしょうか?
clusterX_accにはいくつかの数値 (e.g. 1, 3, 5) が入っています。
試したこと
paste0を使用して、clusterX_accの部分を
test <- paste0("cluster",i,"_acc") c1 <- tajima.test(data_snps[test,])
のように無理やり組み込んでも、testはあくまで"clster1_acc"という文字列のため、このデータフレームが持っている数字の情報は引続ことが出来ません。
他の関数も試してみましたが、どれもうまくいきませんでした…
なにか()や[]などの記号を使って"i"をループに組み込むことは出来るのでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。