Tôi muốn chia một khung dữ liệu lớn thành danh sách các khung dữ liệu theo các giá trị trong hai cột. Sau đó tôi muốn áp dụng một phép biến đổi dữ liệu chung trên tất cả các dataframes (chuyển đổi trễ) trong danh sách kết quả. Tôi nhận thức được lệnh tách nhưng chỉ có thể làm cho nó hoạt động trên một cột dữ liệu tại một thời điểm.Chia dataframe bằng hai cột dữ liệu và áp dụng biến đổi chung trên danh sách các khung dữ liệu kết quả
25
A
Trả lời
6
thế nào về vấn đề này một:
library(plyr)
ddply(df, .(category1, category2), summarize, value1 = lag(value1), value2=lag(value2))
có vẻ như một công việc tuyệt vời cho plyr
gói và ddply()
chức năng. Nếu vẫn còn câu hỏi mở, vui lòng cung cấp một số dữ liệu mẫu. Tách nên làm việc trên nhiều cột cũng như:
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
Bạn cần phải đặt tất cả các yếu tố mà bạn muốn chia bởi trong danh sách, ví dụ:
split(mtcars,list(mtcars$cyl,mtcars$gear))
Sau đó, bạn có thể sử dụng lapply
về vấn đề này để làm bạn muốn làm gì khác
Các vấn đề liên quan
- 1. Áp dụng trên hai khung dữ liệu
- 2. Tách một khung dữ liệu lớn thành một danh sách các khung dữ liệu dựa trên giá trị chung trong cột
- 3. Dán các cột của hai khung dữ liệu
- 4. Áp dụng danh sách hàm n cho mỗi hàng của một khung dữ liệu?
- 5. Sử dụng gấu trúc để chọn các hàng bằng cách sử dụng hai cột khác nhau từ khung dữ liệu?
- 6. R Áp dụng() trên các cột dữ liệu cụ thể
- 7. Lọc các khung dữ liệu một cột
- 8. Thêm hai khung dữ liệu gấu trúc
- 9. Chuyển đổi một cột kiểu 'danh sách' để nhiều cột trong một khung dữ liệu
- 10. chia khung dữ liệu dựa trên chỉ số nguyên
- 11. Đổi tên các cột trong nhiều khung dữ liệu, R
- 12. Matching nhiều cột trên khung dữ liệu khác nhau và nhận được cột khác như kết quả
- 13. Áp dụng một chức năng cho mỗi khung dữ liệu
- 14. Chuyển đổi tên hàng trong nhiều khung dữ liệu thành cột trong khung dữ liệu
- 15. Hợp nhất hai khung dữ liệu với nhau có cùng tên và kiểu dữ liệu biến
- 16. Xoay vòng dữ liệu bằng hai cột
- 17. Kết hợp hai khung dữ liệu và xóa các cột trùng lặp
- 18. R - sáp nhập một danh sách các khung dữ liệu vào một khung dữ liệu với các giá trị thiếu bằng hàng
- 19. Lọc khung dữ liệu
- 20. Đặt khung dữ liệu theo hai cột trong R
- 21. Khung dữ liệu và is.nan()
- 22. Sao chép dữ liệu bảng có các cột chung
- 23. In hàng thứ N trong danh sách khung dữ liệu
- 24. Không liệt kê danh sách các khung dữ liệu
- 25. Tái một khung dữ liệu --- thay đổi hàng để cột
- 26. Cách tránh chuyển đổi ký tự ngầm khi sử dụng áp dụng trên khung dữ liệu
- 27. Haskell: Chuyển đổi danh sách dữ liệu
- 28. được chia luôn phân loại nội bộ các khung dữ liệu kết quả
- 29. Áp dụng pnorm cho các cột của một khung dữ liệu
- 30. Chuyển danh sách chung thành tập dữ liệu trong C#
Cảm ơn câu trả lời! Đã tìm ra rằng tôi cần phải đặt các biến phân chia trong một danh sách và điều đó đã giải quyết vấn đề "tách" bằng cách sử dụng hai vars. Đọc lên trên các gói plyr và nó thực sự là mạnh mẽ. Không thể làm cho nó làm những gì tôi muốn tuy nhiên. Đã thử lệnh này: llply (1: length (List), hàm (i) {temp <-List [[i]] $ a; Danh sách [[i]] $ b <-append (head (temp, -1), na, sau = 0)}) và dự kiến sẽ tìm một biến mới 'b' trong mỗi khung dữ liệu có trong 'Danh sách'. Lệnh in ra danh sách kết quả [[i]] $ b trên màn hình. Tôi đã hiểu lầm điều gì? – user1160760