【发布时间】:2020-09-22 18:59:55
【问题描述】:
我想创建一个循环,将多个变量的 t 检验输出存储在数据框中。但是当我将不同的变量存储在带引号的向量中时,这些变量不能用于 t 检验,因为它们是用引号保存的。例如,R 将第一个变量作为循环中的“variable_1”,这会产生错误,因为对于 t 检验,我需要不带引号的变量,例如t.test(variable_1 ~ Gender)。有人知道如何去掉向量中变量名称的引号吗?
variable <- c("variable_1", "variable_2", "variable_3")
df <- data.frame(t_value=as.numeric(),
df=as.numeric(),
p_value= as.numeric(),
mean_f= as.numeric(),
mean_m= as.numeric())
attach(data)
for(v in variable){
output <- t.test(v ~ Gender)
values <- output[c(1,2,3,5)]
row <- round(unlist(values, use.names = FALSE),3)
df <- rbind(df, row)
}
【问题讨论】:
-
我知道有些课程和教程仍然建议使用
attach,但我还没有找到增加安全性或结构的情况;几乎所有时间,它都会在用户的脑海中和语言本身中产生歧义。我强烈建议您学习如何在没有它的情况下进行操作。 -
MWE 中缺少性别。同上没有附加
-
要“去掉引号”,你需要非标准的评估。 advanced R中给出了很好的介绍
-
如果其中一个答案解决了您的问题,请accept it;这样做不仅为回答者提供了一些积分,而且还为有类似问题的读者提供了一些关闭。尽管您只能接受一个答案,但您可以选择对您认为有帮助的人进行投票。 (如果仍有问题,您可能需要编辑您的问题并提供更多详细信息。)
-
感谢所有有用的 cmets!我不知道使用 attach 有缺点,但我肯定会停止使用它。
标签: r loops variable-names