我有一个可能非常愚蠢的问题,但似乎无法轻松找到解决方案。而且我对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=""))))
}
}
但这不起作用。
有人可以指出正确的方向,以解决此问题吗?非常感谢您的帮助!
答案 0 :(得分:1)
让我们假设df
是您的数据,而前15列是答案。
在这种情况下,您可以使用此
lapply(df[,1:15], function(x) {chisq.test(x, df$Sex)})