R的重组观察

时间:2018-06-07 13:03:59

标签: r aggregate reshape

我正在努力重构我的data.frame。对于多响应PLS 我想在两个单独的观察中将所有Para和所有C分组 目前它看起来像

    Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   50 obs. of  32 variables:    
 $ Para.PL       : num  3 0 5 0 8 0 17 0 22 0 ...
 $ Para.PH       : num  0 0 0 0 0 0 0 0 0 0 ...
 $ Para.S        : num  0 0 0 0 0 0 0 0 0 0 ...
 $ C16 FA        : num  8.89 9.75 8.23 9.6 10 ...
 $ C18:0 FA      : num  0 0 0 0 0 0 0 0 0 0 ...
 $ C23 n-alkane  : num  3.76 3.22 6.55 5.05 5.4 ...
 $ C24 n-alkane  : num  1.435 0.315 2.826 0.276 4.075 ...
 $ C25 n-alkane  : num  17.5 15.7 15.6 11.6 22.7 ...
 $ C26 n-alkane  : num  3.796 0.747 6.318 0.877 9.144 ...

我的目标是这样的结构

'data.frame':   16 obs. of  2 variables:
  $ chemical: 'AsIs' num [1:16, 1:5] 0.73 0.19 0.26 0.67 0.52 0.26 0.24 0.3 0.35 0.19 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr  "G1" "G2" "G3" "G4" ...
  .. ..$ : chr  "Acidity" "Peroxide" "K232" "K270" ...
 $ sensory : 'AsIs' num [1:16, 1:6] 21.4 23.4 32.7 30.2 51.8 40.7 53.8 26.4 65.7 45 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr  "G1" "G2" "G3" "G4" ...
  .. ..$ : chr  "yellow" "green" "brown" "glossy" ...

感谢任何建议。

干杯

1 个答案:

答案 0 :(得分:0)

我们可以使用melt中的data.table转换为' long'格式。通过在measure参数

中指定模式,可以使用多组列
library(data.table)
melt(setDT(df1), measure = patterns("^para", "^C\\d+"), 
            value.name = c("para", "Cval"))