r - 每第 n 个变量之间的校正
问题描述
我有一长串代表不同变量随时间变化的多列。我正在尝试在三个时间点之间建立相关性,例如
cor(df1[,c(7,36,65)], use = "p")
cor(df1[,c(8,37,66)], use = "p")
cor(df1[,c(9,38,67)], use = "p")
这很耗时,如果我在不久的将来添加/删除列,我希望能够运行它。如您所见,它显然遵循一种模式,我尝试使用 apply 来实现这一点:
apply(df1[,c(7:93)], 2, function(x) corr(df1[,c(x, x+29, x+58)], use = "p"))
我还尝试了一个 for 循环:
for (i in 7:93) {
cor(df1[, c(i,i+29,i+58)], use = "p")
}
显然,我在写这两个方面都犯了错误。我知道必须有一个简单的方法来做到这一点,我错过了!
解决方案
我们可以mapply
用于并行选择列。
mapply(function(x, y, z) cor(df1[,c(x, y, z)], use = "p"), 7:35, 36:64, 65:93)
或者将您的尝试提前另一种类似于@akrun 的解决方案可能是
sapply(7:35, function(x) cor(df1[,c(x, x+29, x+58)], use = "p"))
推荐阅读
- json - 使用数字属性名称访问 MS SQL Server 中的 JSON_VALUE
- swift - NSView mouseDown 填充矩形
- ios - 我可以在 Swift 应用程序中引用 Ada 库吗?
- constraints - 如何将自然语言转换为 OCL 约束?
- python - Discord Bot Python 每小时发送一条消息
- azure - 将电子邮件作为 ErrorAction 发送的 Azure 调度程序机制
- drupal - Drupal 8 WYSIWYG 数据以编程方式插入显示纯 html
- javascript - JavaScript - 从对象获取属性,如果未定义则抛出错误
- vba - 禁止 Excel MAC 2015 上的 workbook_open vba 脚本
- jquery - Mongodb 使用 nodejs 和 mongoose 查询嵌套对象