【发布时间】:2016-04-22 07:01:56
【问题描述】:
我很清楚对于下面描述的特定问题有更好的解决方案(例如,Hmisc 中的cor 和rcorr,正如here 所讨论的那样)。这只是一个我无法弄清楚的更一般的 R 问题的说明:将多个变量名称从字符向量传递到函数内的公式语句。
假设有一个由数字变量组成的数据集。
vect.a <- rnorm(n = 20, mean = 0, sd = 1)
vect.b <- rnorm(n = 20, mean = 0, sd = 1)
vect.c <- rnorm(n = 20, mean = 0, sd = 1)
vect.d <- rnorm(n = 20, mean = 0, sd = 1)
dataset <- data.frame(vect.a, vect.b, vect.c, vect.d)
names(dataset) <- c("var1", "var2", "var3", "var4")
必须使用函数~ VarA + VarB 内的~ VarA + VarB 类型的公式语句,对该数据集中的每个可能的变量对执行相关性测试@:
for (i in 1:(length(names(dataset))-1)){
for (j in (i+1):length(names(dataset))) {
cor.test(~ names(dataset)[i] + names(dataset)[j], data = "dataset")
}
}
返回错误:'character'类型的'envir'参数无效
我假设一个字符串与公式语句不兼容,但哪个类与它兼容?如果整个方法是错误的,请解释原因并提供或指出替代解决方案。如果该方法以某种方式“丑陋”或“非R”,请解释原因。
【问题讨论】:
标签: r