循环遍历 R 中的变量名
Loop through variable names in R
我有一个可能非常愚蠢的问题,但似乎无法轻易找到解决方案。我是 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 与性别制作 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=""))))
}
}
但这不起作用。
任何人都可以指出正确的方向来解决这个问题吗?非常感谢任何帮助!
假设 df
是您的数据,前 15 列是答案。
在这种情况下你可以使用这个
lapply(df[,1:15], function(x) {chisq.test(x, df$Sex)})
我有一个可能非常愚蠢的问题,但似乎无法轻易找到解决方案。我是 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 与性别制作 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=""))))
}
}
但这不起作用。
任何人都可以指出正确的方向来解决这个问题吗?非常感谢任何帮助!
假设 df
是您的数据,前 15 列是答案。
在这种情况下你可以使用这个
lapply(df[,1:15], function(x) {chisq.test(x, df$Sex)})