r - 在 R 中同时运行多个相关性
问题描述
我试图通过调整我用来进行回归的代码来在 R 中运行几个相关性。
这是我已成功用于回归的现有代码。
combineddvs <- colnames(dfc[,87:100])
form <- paste("yourbehavior_c ~ days + days2 +", combineddvs)
models <- form %>%
set_names(combineddvs) %>%
map(~lm(.x, data = dfc))
map(models, summary)
这是我对它的改编,用于我想要运行的相关性。
combineddvs <- c("committed", "goodfaith", "strongfeel")
form <- paste("df$main, df$", combineddvs)
models <- form %>%
set_names(combineddvs) %>%
map(~cor(.x))
map(models, summary)
前两行有效,但在尝试创建对象“模型”时出现此错误:
Error in cor(.x) : supply both 'x' and 'y' or a matrix-like 'x'
我知道我需要 x 和 ay 来运行相关性。但是,我试图将这两个都包含在“表单”对象中。
这是显示我正在尝试做的事情的笨拙方式。我有超过 3 个项目,所以这在实践中效率不高。
cor(df$main, df$committed)
cor(df$main, df$goodfaith)
cor(df$main, df$strongfeel)
我怎样才能做到这一点?我愿意修改上述代码或使用完全不同的方法。
解决方案
与data.table
,您可以.SD
与 一起使用lapply
。例如,使用mtcars
数据:
library(data.table)
dt <- data.table(mtcars)
dt[, .(lapply(.SD, cor, mpg)), .SDcols = colnames(dt)[2:length(colnames(dt))]]
所以,在你的例子中,
dt[, .(lapply(.SD, cor, main)), .SDcols = c("committed","goodfaith","strongfeel")]]
推荐阅读
- selenium - Selenium:ChromeDriver 和 Chromium-Browser 和 Raspberry Pi 之间的不同版本
- java - Java 访问对象中的数组
- python - Python中的惰性排序
- javascript - 如何根据按钮单击验证表单字段?
- javascript - 我需要在我的反应组件中为 text2 创建一个延迟
- c - 无法在共享对象文件中通过 system() 命令运行 python 文件
- android - 如何增强和提高 recyclerView 适配器的性能
- spring - Spring Security WebTestClient 在模拟 JWT 时不调用 OncePerRequestFilter
- ab-testing - 如果我将更改推送到着陆页,Google 优化工具会继续测试我的页面变体吗?
- java - 通用消息如何
作品?