R - 如何循环变量列表?

时间:2014-09-12 18:19:54

标签: r loops

我对R(以及所有编程,真的)相对较新,所以请原谅我认为是一个非常基本的问题。我已经完成了关于这个和许多其他网站的相关讨论,我只是无法将信息拼凑在一起。我希望基于我当前问题的一个例子将帮助我最终理解如何写这个。

  • 我有一个名为“data1”的30 * 30数据框,变量(列)标记为X1-X30
  • “data1”有列标签,我从中创建了一个名为“mylist”的列表

  • 我有另一个数据框,只有一列,30行称为“数据”

  • “data”中的一个变量(列)标记为“SumScores”

  • 我需要计算“data1”和“SumScores”中每个变量之间的相关性

  • 我想只保存相关结果中的估计值(cor.test $ estimate)到一个矢量,我将其命名为“LISTpb”

  • 我已经找到了如何通过编写每个变量的代码来做到这一点

  • 有人请告诉我如何使用循环完成此任务吗?
  

pb< - cor.test(data1 $ X1,data $ SumScores)$ estimate

     

LISTpb< - pb

     

pb< - cor.test(data1 $ X2,data $ SumScores)$ estimate

     

LISTpb< - rbind(LISTpb,pb)

     

LISTpb

     

pb< - cor.test(data1 $ X3,data $ SumScores)$ estimate

     

LISTpb< - rbind(LISTpb,pb)

     

LISTpb

     

pb< - cor.test(data1 $ X4,data $ SumScores)$ estimate

     

LISTpb< - rbind(LISTpb,pb)

     

LISTpb

     

pb< - cor.test(data1 $ X5,data $ SumScores)$ estimate

     

LISTpb< - rbind(LISTpb,pb)

     

LISTpb

提前感谢所有能帮助我的人!

1 个答案:

答案 0 :(得分:0)

这里有一个使用sapply的选项:

sapply(data1,
       function(x) cor.test(x,data$SumScores)$estimate)

这将循环遍历data1列,并在我调用cor.test的地方应用anonym函数。

您还应该阅读?apply?lapply,..和其他xxapply系列函数。这是做循环的R方式(功能范例)。

这是一个使用cars示例data.frame:

的示例
sapply(cars,function(x) cor.test(x,cars[,1])$estimate)
speed.cor  dist.cor 
1.0000000 0.8068949