cor.test 的奇怪问题——去掉结果中的 [[1]]、[[2]] 等
Weird Issue with cor.test -- get rid of [[1]], [[2]], etc. in Results
我编写了以下函数,用于在一个变量与给定变量列表之间进行成对相关。
myCortest <- function(dat, mainVar, varlist) {
foo <- lapply(varlist, function(x){
foo1 <- cor.test(get(mainVar, as.environment(dat)),
get(x, as.environment(dat)))
data.frame(var1 = mainVar, var2 = x,
R = foo1$estimate, p = foo1$p.value)
})
foo
}
有点用。结果之间有奇怪的 [[1]]、[[2]],如下所示:
myCortest(chol, "wt", c("age", "chol", "tg", "ht"))
[[1]]
var1 var2 R p
cor wt age 0.6660014 5.631448e-26
[[2]]
var1 var2 R p
cor wt chol 0.06076105 0.404971
[[3]]
var1 var2 R p
cor wt tg 0.294617 3.688497e-05
[[4]]
var1 var2 R p
cor wt ht 0.8558331 2.705222e-56
我似乎无法弄清楚是什么导致括号中的数字上升。我想摆脱他们。有什么想法吗?
它是 list
通过 lapply
循环输出(lapply
总是 return 是 list
)。我们可以 rbind
list
元素到单个数据集 do.call
out1 <- do.call(rbind, out)
哪里
out <- myCortest(chol, "wt", c("age", "chol", "tg", "ht"))
更好的选择是将函数 'myCortest' 更改为 return rbind
ed 输出
myCortest <- function(dat, mainVar, varlist) {
foo <- lapply(varlist, function(x){
foo1 <- cor.test(get(mainVar, as.environment(dat)),
get(x, as.environment(dat)))
data.frame(var1 = mainVar, var2 = x,
R = foo1$estimate, p = foo1$p.value)
})
do.call(rbind, foo)
}
我编写了以下函数,用于在一个变量与给定变量列表之间进行成对相关。
myCortest <- function(dat, mainVar, varlist) {
foo <- lapply(varlist, function(x){
foo1 <- cor.test(get(mainVar, as.environment(dat)),
get(x, as.environment(dat)))
data.frame(var1 = mainVar, var2 = x,
R = foo1$estimate, p = foo1$p.value)
})
foo
}
有点用。结果之间有奇怪的 [[1]]、[[2]],如下所示:
myCortest(chol, "wt", c("age", "chol", "tg", "ht"))
[[1]]
var1 var2 R p
cor wt age 0.6660014 5.631448e-26
[[2]]
var1 var2 R p
cor wt chol 0.06076105 0.404971
[[3]]
var1 var2 R p
cor wt tg 0.294617 3.688497e-05
[[4]]
var1 var2 R p
cor wt ht 0.8558331 2.705222e-56
我似乎无法弄清楚是什么导致括号中的数字上升。我想摆脱他们。有什么想法吗?
它是 list
通过 lapply
循环输出(lapply
总是 return 是 list
)。我们可以 rbind
list
元素到单个数据集 do.call
out1 <- do.call(rbind, out)
哪里
out <- myCortest(chol, "wt", c("age", "chol", "tg", "ht"))
更好的选择是将函数 'myCortest' 更改为 return rbind
ed 输出
myCortest <- function(dat, mainVar, varlist) {
foo <- lapply(varlist, function(x){
foo1 <- cor.test(get(mainVar, as.environment(dat)),
get(x, as.environment(dat)))
data.frame(var1 = mainVar, var2 = x,
R = foo1$estimate, p = foo1$p.value)
})
do.call(rbind, foo)
}