我希望這個問題對於R中的初學者來說是很好的教程(比如我)。 我習慣於編程語言,其中循環是操作數據,算法等所必需的。然而,R中的循環很慢,在大數據的情況下可以看到。 幸運的是R提供了內置函數,可以迭代元素並以非常有效的方式進行計算。R中沒有循環的打印列表(適用)
現在我想避免循環,當我在analysying R.數據所以,我讀過有關lapply,申請和其他有用的功能。
我想在我的數據的第一列和其他列之間進行關聯並打印:樣本名稱,樣本估計值和好的表格中的p值 - 對於循環,沒有的所有東西。
我的想法 - 從stratch製造假數據:
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)
相關測試與申請 - 在這裏找到的堆棧溢出,並在手冊:
md_stat <- apply(my_data[,2:4], 2, cor.test, my_data$surv, method="pearson")
md_stat是一個列表,現在我想很好地想象它,但我不知道該怎麼做,這對我來說太複雜了,所以我用作爲循環
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
如何通過其他引入函數替換上面的循環?