我的数据如下:
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)
答案 0 :(得分:0)
完全不确定预期的输出。根据描述,我们需要对每个“ID”进行关联,因此我们将数据集“{ID”} split
变为list
,然后acast
(来自reshape2
通过“Vehicle”创建序列列(“Seq”)之后的'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
有很多选项,因此最好将其更改为适合它的相关选项。