【发布时间】:2019-10-02 08:51:24
【问题描述】:
我有一个可能非常愚蠢的问题,但似乎无法轻易找到解决方案。而且我对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 vs 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=""))))
}
}
但这不起作用。
谁能指出正确的方向来解决这个问题?非常感谢任何帮助!
【问题讨论】:
-
您可以使用
summary(df)或lapply(df, table),其中第一个将为您提供data.frame 的摘要,其中数值变量以最小值、最大值、平均值、中值和分类(因子)进行汇总带表的变量。第二个为您提供变量表列表。 -
你真的需要学习
help("$)。它解释了何时可以使用$以及何时使用[]和[[]]。一般来说,在一种语言中运行良好的方法不一定能很好地转移到另一种语言。就是这种情况。 -
谢谢,我会阅读并重试。我还稍微编辑了我的问题,因为我的示例似乎选择不当(考虑到第一条评论如何回答如何通过另一种方式实现类似结果)
标签: r loops variable-names