对于 R 中的循环相关测试
For Loop Correlation Test in R
我想 运行 一个 for 循环来对我的数据帧进行多重相关测试。我的数据框中也有 NA,所以我也想省略!
这是我的数据框的一部分。它的内容要广泛得多,但其中的一个片段更容易理解。
name: carsdataframe
price mph maxmph model year status
1 NA 60 100 2013 1
2 NA 57 96 2019 0
3 5.2 52 NA 2017 1
我想做我目前拥有的:
for (i in c(1:4)){
colcor <- colnames(carsdataframe[i])
coresult <- cor.test(carsdataframe$colcor,carsdataframe$"status",use="pairwise.complete.obs")
finalcor <- c(coresult, colcor)
}
colcor
但是这段代码不起作用,我收到“'x' 和 'y' 必须具有相同的长度。”我想知道如何为它编码。我应该修复什么?
抱歉,如果我犯了业余错误,我刚开始使用 R!提前谢谢你! :)
carsdataframe <- structure(list(price = c(NA, NA, 5.2), mph = c(60L, 57L, 52L),
maxmph = c(100L, 96L, NA), model_year = c(2013L, 2019L, 2017L
), status = c(1L, 0L, 1L)), class = "data.frame", row.names = c(NA,
-3L))
当列名存储在变量中时不要使用$
,使用[[
将列值提取为向量。您可以使用类似于 for
循环的 lapply
。
list_data <- lapply(names(carsdataframe), function(x)
cor.test(carsdataframe[[x]],carsdataframe$status,use="pairwise.complete.obs"))
您可以使用 sapply
/lapply
来提取特定的统计信息。例如 - 要获得 p.value
你可以这样做:
sapply(list_data,`[[`, 'p.value')
#Or
#sapply(list_data,function(x) x$p.value)
要计算每个变量组合之间的相关性,您可以将 list_data
计算为:
list_data <- combn(names(carsdataframe), 2, function(x)
cor.test(carsdataframe[[x[1]]],
carsdataframe[[x[2]]],use="pairwise.complete.obs"), simplify = FALSE)
我想 运行 一个 for 循环来对我的数据帧进行多重相关测试。我的数据框中也有 NA,所以我也想省略!
这是我的数据框的一部分。它的内容要广泛得多,但其中的一个片段更容易理解。
name: carsdataframe
price mph maxmph model year status
1 NA 60 100 2013 1
2 NA 57 96 2019 0
3 5.2 52 NA 2017 1
我想做我目前拥有的:
for (i in c(1:4)){
colcor <- colnames(carsdataframe[i])
coresult <- cor.test(carsdataframe$colcor,carsdataframe$"status",use="pairwise.complete.obs")
finalcor <- c(coresult, colcor)
}
colcor
但是这段代码不起作用,我收到“'x' 和 'y' 必须具有相同的长度。”我想知道如何为它编码。我应该修复什么?
抱歉,如果我犯了业余错误,我刚开始使用 R!提前谢谢你! :)
carsdataframe <- structure(list(price = c(NA, NA, 5.2), mph = c(60L, 57L, 52L),
maxmph = c(100L, 96L, NA), model_year = c(2013L, 2019L, 2017L
), status = c(1L, 0L, 1L)), class = "data.frame", row.names = c(NA,
-3L))
当列名存储在变量中时不要使用$
,使用[[
将列值提取为向量。您可以使用类似于 for
循环的 lapply
。
list_data <- lapply(names(carsdataframe), function(x)
cor.test(carsdataframe[[x]],carsdataframe$status,use="pairwise.complete.obs"))
您可以使用 sapply
/lapply
来提取特定的统计信息。例如 - 要获得 p.value
你可以这样做:
sapply(list_data,`[[`, 'p.value')
#Or
#sapply(list_data,function(x) x$p.value)
要计算每个变量组合之间的相关性,您可以将 list_data
计算为:
list_data <- combn(names(carsdataframe), 2, function(x)
cor.test(carsdataframe[[x[1]]],
carsdataframe[[x[2]]],use="pairwise.complete.obs"), simplify = FALSE)