我有一个大的数据帧,该数据帧被分组(示例数据中的列组)为同时进行的测量。值(列值)是通过4个不同的设备(列设备)测量的,但不一定要同时测量所有4个设备。我的数据看起来像这样
group device value value.to.be.averaged
1 1 a 69 173
2 1 b 75 172
3 2 a 78 173
4 2 c 69 172
5 2 b 60 173
6 2 d 62 172
7 3 a 80 173
8 3 c 63 173
9 3 b 63 172
可以由此复制
my_data<-data.frame(group=c(rep(1:3, c(2,4,3))),
device=c("a", "b", "a", "c", "b", "d", "a", "c", "b") ,
value=sample(60:80,9,replace=T), value.to.be.averaged=sample(172:173,9,replace=T))
我需要将设备放入列中,将组号保留为行ID,并将每个准确的测量值分配给设备,如果组中缺少设备,则分配NA。还有其他一些变量可以简单地平均。之后数据应如下所示。
group a b c d value.to.be.averaged
1 1 77 68 NA NA 172
2 2 60 73 70 76 173
3 3 65 76 77 NA 172
可以复制此内容
my_reshaped_data<-data.frame(group=c(1:3), a=c(77, 60, 65), b=c(68,73,76), c=c(NA, 70,77), d=c(NA, 76, NA), value.to.be.averaged=c(mean(172,173,173),
mean(rep(173,3)), mean(172,172,173)))
由于我的数据很紧,所以计算时间和计算资源是一个问题。我找到了一些例子,这些例子中有均匀分组的组,而没有非正规分组的组。有什么建议么?干杯,詹妮斯
tidyverse :: pivot_wider(my_data,names_from =设备,values_from =值)