Chcę podzielić dużą ramkę danych na listę ramek danych zgodnie z wartościami w dwóch kolumnach. Następnie chcę zastosować wspólną transformację danych dla wszystkich ramek danych (transformacja opóźnienia) na liście wynikowej. Jestem świadomy polecenia split, ale mogę go uruchomić tylko w jednej kolumnie danych naraz.Podzielenie ramki danych za pomocą dwóch kolumn danych i zastosowanie wspólnej transformacji na liście wynikowych ramek danych
25
A
Odpowiedz
6
jak o tym jednym:
library(plyr)
ddply(df, .(category1, category2), summarize, value1 = lag(value1), value2=lag(value2))
wygląda na zadanie dla Excelent plyr
pakietu i ddply()
funkcji. Jeśli nadal masz pytania otwarte, podaj kilka przykładowych danych. Dzielenie powinien działać na kilku kolumn, a także:
df<- data.frame(value=rnorm(100), class1=factor(rep(c('a','b'), each=50)), class2=factor(rep(c('1','2'), 50)))
g <- c(factor(df$class1), factor(df$class2))
split(df$value, g)
38
Musisz umieścić wszystkie czynniki, które mają być podzielone przez w wykazie, np:
split(mtcars,list(mtcars$cyl,mtcars$gear))
Następnie można użyć lapply
na to zrobić co jeszcze chcesz zrobić.
Powiązane problemy
- 1. Jak połączyć dwie ramki danych na podstawie dwóch kolumn?
- 2. rpind ramek danych na liście list
- 3. Dodawanie dwóch ramek danych pandy
- 4. Porównywanie dwóch ramek danych i uzyskiwanie różnic
- 5. Podziel dużą ramkę danych na listę ramek danych na podstawie wspólnej wartości w kolumnie
- 6. R podzbiór ramki danych na wiele ramek danych na podstawie wartości wielu kolumn
- 7. Suma dwóch kolumn ramki danych z wartościami NA
- 8. R Liczby jako nazwy kolumn ramek danych
- 9. Elementarne maksimum dwóch ramek danych Ignoring NaNs
- 10. Pandy: Zastosowanie Lambdy do wielu ramek danych
- 11. dplyr podsumowuje za pomocą funkcji ramki danych
- 12. Drukuj N-ty wiersz na liście ramek danych
- 13. jest dzielony zawsze wewnętrznie sortowanie wynikowych ramek danych
- 14. Umieszczanie wielu ramek danych na liście (inteligentny sposób)
- 15. Mutowanie kolumn ramki danych na podstawie funkcji predykatu (dplyr :: mutate_if)
- 16. Stosowanie pnorm do kolumn ramki danych
- 17. Wypisanie listy ramek danych
- 18. Używanie pand do wybierania wierszy za pomocą dwóch różnych kolumn z ramki danych?
- 19. Pandy: scalanie wielu ramek danych i nazw kolumn kontrolnych?
- 20. usuń kolumny z NA z wszystkich ramek danych na liście
- 21. Scalanie wielu ramek danych na dwóch wspólnych kolumnach
- 22. Pierwsze nazwę ramki danych
- 23. Korzystanie lapply zastosować funkcję na liście ramek danych i zapisywania danych wyjściowych do plików o różnych nazwach
- 24. Wyodrębnianie określonych kolumn z ramki danych
- 25. Ponowne indeksowanie ramek danych
- 26. Efektywnie przekształcić wiele kolumn ramki danych
- 27. Dopasowywanie i zastępowanie kolumn ramki danych według wielu warunków
- 28. pandy: scalanie (join) dwie ramki danych na wielu kolumnach
- 29. Konwertowanie ramki danych na macierz za pomocą plyr dully
- 30. Niestabilność obliczeń ramek danych pandy
Dzięki za odpowiedzi! Zorientowałem się, że muszę umieścić zmienne dzielone na liście i że zadbałem o problem "dzielenia" za pomocą dwóch zmiennych. Czytaj dalej na pakiecie plyr i rzeczywiście jest potężny. Nie mogę sprawić, żeby zrobił to, co chcę. Próbowałem tego polecenia: llply (1: length (List), function (i) {temp <-List [[i]] $ a; List [[i]] $ b <-append (head (temp, -1), na, after = 0)}) i oczekuje znaleźć nową zmienną "b" w każdej ramce danych zawartej w "Liście". Polecenie wyświetla listę wyników [[i]] $ b na ekranie. Co źle zrozumiałem? – user1160760