Hãy nói rằng tôi có data.frame này (với 3 biến)hoạt động khác trong một nhóm, sau một dplyr :: group_by()
ID Period Score
123 2013 146
123 2014 133
23 2013 150
456 2013 205
456 2014 219
456 2015 140
78 2012 192
78 2013 199
78 2014 133
78 2015 170
Sử dụng dplyr Tôi có thể nhóm chúng bằng ID và lọc các ID đó xuất hiện nhiều hơn một lần
data <- data %>% group_by(ID) %>% filter(n() > 1)
Bây giờ, những gì tôi muốn đạt được là thêm một cột đó là: Difference = Điểm của kỳ P - Hệ số của thời kỳ P-1 để có được một cái gì đó như thế này:
ID Period Score Difference
123 2013 146
123 2014 133 -13
456 2013 205
456 2014 219 14
456 2015 140 -79
78 2012 192
78 2013 199 7
78 2014 133 -66
78 2015 170 37
Điều này khá tầm thường để thực hiện việc này trong bảng tính, nhưng tôi không biết làm cách nào để đạt được điều này trong R.
Cảm ơn bạn đã được trợ giúp hoặc hướng dẫn.
Cảm ơn Alex. Tôi thực sự thích điều này. Vì vậy, có, tôi đồng ý tốt hơn là nên có NA cho giai đoạn đầu tiên và 0 chỉ khi sự khác biệt là 0. – Franky
Bạn cũng có thể chỉ định mặc định bên trong 'lag', ví dụ: 'Điểm - độ trễ (Điểm, mặc định = 99)' và độ trễ bạn muốn sử dụng. –