私は、この質問がRの初心者のための素敵なチュートリアル(私のような)になることを願っています。 データ、アルゴリズムなどを操作するためにループが必要な言語をプログラミングすることに慣れていました。 しかし、Rのループは遅く、大きなデータの場合には見えます。 幸い、Rはbulit-in関数を提供しています。これにより、要素を反復処理したり、非常に効率的な方法で計算を行うことができます。ループを使わずにRを印刷する(適用する)
今、私は約lapply、はおよび他の有用な機能を適用し、私はそう私が読んだR.内のデータをanalysyingてるときのループを避けるためにしたいと思います。
私のデータと印刷の最初の列と他の列との間の相関関係を作成したいと思います。ループなしのすべてのサンプル名、サンプル見積もり、およびP値。
私の考えは - stratchから偽のデータを作成します - :
md_stat <- apply(my_data[,2:4], 2, cor.test, my_data$surv, method="pearson")
md_statがリストであるを適用で
surv <- c(7.1,8,4,2,0.5,5,6)
geneA_expr <- runif(n = 7, min = 1, max = 30)
geneB_expr <- runif(n = 7, min = 1, max = 30)
geneC_expr <- runif(n = 7, min = 1, max = 30)
my_data <- data.frame(surv, geneA_expr, geneB_expr, geneC_expr)
相関テストスタックオーバーフローで、手動でここにそれを見つけました今、私はそれをうまく視覚化したいと思いますが、どうすればいいのかわかりません。私にとっては複雑すぎるので、ループのためにを使用しました。
for(i in names(md_stat)){
cat(i ,md_stat[[i]]$estimate, md_stat[[i]]$p.value, '\n')
}
geneA_expr 0.2517658 0.5860052
geneB_expr 0.2438112 0.5982849
geneC_expr 0.8026801 0.02977544
上記のforループを他のbulit-in関数で置き換えるにはどうすればよいですか?