Próbuję utworzyć "fale" zmiennych reprezentujących powtarzające się pomiary. W szczególności próbuję utworzyć kolejne zmienne, które reprezentują wartości średnie dla zmiennych 1 - 10, 11 - 20 ... 91-100. Zwróć uwagę, że "..." symbolizuje zmienne dla fal od 3 do 9, ponieważ unikanie pisania jest moim celem!Mutacja wielu/kolejnych kolumn (z dplyr lub podstawą R)
Oto przykład ramka danych, df
, z 10 wierszy i 100 kolumn:
mat <- matrix(runif(1000, 1, 10), ncol = 100)
df <- data.frame(mat)
dim(df)
> 10 100
Użyłem dplyr
mutate
funkcję, która działa, gdy wszystkie zmienne są wpisane, ale jest czasochłonne i skłonny do błędów. Nie udało się znaleźć sposób, aby to zrobić bez uciekania się do ręcznego wpisywania nazwy kolumn, jak zacząłem robić poniżej (należy pamiętać, że „...” symbolizuje fale od 3 do 9):
df <- df %>%
mutate(wave_1 = (X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10)/10,
wave_2 = (X11 + X12 + X13 + X14 + X15 + X16 + X17 + X18 + X19 + X20)/10,
...
wave_10 = (X91 + X92 + X93 + X94 + X95 + X96 + X97 + X98 + X99 + X100)/10)
Czy możesz mutate
mutować wiele/kolejne kolumny z "dplyr"? Inne podejścia również są mile widziane.
Czy to musi być z dplyr? –
Nie, dziękuję - inne rozwiązanie byłoby wspaniałe, –