реструктуризация наблюдений в R - PullRequest
0 голосов
/ 07 июня 2018

Я изо всех сил пытаюсь реструктурировать свои 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 голосов
/ 07 июня 2018

Мы можем использовать melt из data.table для преобразования в «длинный» формат.Это может занять несколько наборов столбцов, указав шаблон в параметре measure

library(data.table)
melt(setDT(df1), measure = patterns("^para", "^C\\d+"), 
            value.name = c("para", "Cval"))
...