我有这样的数据:
ID Vehicle MPH
001 1 50
001 1 60
001 2 94
001 2 78
001 2 101
001 3 34
002 1 56
002 2 98
002 2 95
002 3 36
002 3 42
我想通过车辆类型来关联MPH值,这意味着我会看到三个车辆MPH的相关矩阵。这可能吗?如果是这样的话,我将如何在R中进行处理。每个ID和车辆的数据行数不一定相同。非常感谢任何建议!
数据:
ID <- c(001, 001, 001, 001, 001, 001, 002, 002, 002, 002, 002)
Vehicle <- c(1,1,2,2,2,3,1,2,2,3,3,)
MPH <- c(50, 60, 94,78,101,34,56,98,95,36,42)
df <- data.frame(ID,Vehicle,MPH)
不完全确定预期输出。根据描述,我们需要对每个"ID"进行关联,因此我们将数据集按"ID"split
转换为list
,然后在按"Vehicle"创建序列列("Seq")后将acast
(从reshape2
)转换为"wide"格式(ave
步骤完成此操作),并应用cor
函数。
library(reshape2)
lapply(split(df[-1], df$ID), function(x) cor(acast(transform(x, Seq =
ave(Vehicle, Vehicle, FUN = seq_along)),
Seq~Vehicle, value.var = "MPH"), use = "pairwise.complete.obs"))
注意:use
有很多选项,因此最好将其更改为适合它的相关选项。