R-重新整形不规则熔融数据,并在另一列中缺少值的组

问题描述 投票:0回答:1

我有一个大的数据帧,该数据帧被分组(示例数据中的列组)为同时进行的测量。值(列值)是通过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)))

由于我的数据很紧,所以计算时间和计算资源是一个问题。我找到了一些例子,这些例子中有均匀分组的组,而没有非正规分组的组。有什么建议么?干杯,詹妮斯

r reshape
1个回答
0
投票

tidyverse :: pivot_wider(my_data,names_from =设备,values_from =值)

© www.soinside.com 2019 - 2024. All rights reserved.