在R中循环遍历变量名

时间:2019-10-02 08:51:24

标签: r loops variable-names

我有一个可能非常愚蠢的问题,但似乎无法轻松找到解决方案。而且我对R还很陌生,所以请原谅我的无知。

我正在寻找一种遍历数据帧中所有变量的方法。例如,要对所有变量与一个特定变量(例如性别或教育程度)进行比较,形成双向表格。我曾经与Stata合作,但是由于R是免费的,所以我现在应该与R合作(我听说与R合作还有很多其他好处,所以我非常愿意学习:))。

说,我有20个变量,其中15个是调查的答案,而5个是人口统计学的变量。我想看看不同的答案与人口统计差异之间的比较。

通常我会在Stata中用以下简单方法解决问题:

for i = 1 to 5 {
    for j = 1 to 3 {
        tab Sex Var`i'_`j', chi2
    }
}

针对变量Var1_1至Var5_3与Sex制作15个表格,并给出Pearson chi2统计量。

所以,我尝试了与R相同的事情:

for (i in 1:5) {
  for (j in 1:3){
  print(table(chisq.test(paste(df$Sex, "df$Var",i,"_",j,sep=""))))    
  }
}

但这不起作用。

有人可以指出正确的方向,以解决此问题吗?非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

让我们假设df是您的数据,而前15列是答案。 在这种情况下,您可以使用此

lapply(df[,1:15], function(x) {chisq.test(x, df$Sex)})