[英]R - group data in dataframe by two columns and rearrange into new dataframe
[英]Dataframe in R: add new columns, data is from current dataframe
假設我有以下df,
df <- data.frame(
month = 12:1,
value = c(2,3,4,2,3,4,2,3,4,2,3,4)
)
其中包含過去 12 個月中每個月的價值。 現在我想添加兩個新列來記錄過去 2 個月的值,即第 12-3 個月,如下所示:
df2 <- data.frame(
month = 12:3,
value_0 = c(2,3,4,2,3,4,2,3,4,2),
value_1 = c(3,4,2,3,4,2,3,4,2,3),
value_2 = c(4,2,3,4,2,3,4,2,3,4))
這個算法,當df變大並且我想為過去的n個值添加n個新列時,不能簡單地通過手動輸入來完成......所以我想知道,有沒有捷徑可以做到這一點? 謝謝!
從data.table
shift
並將n
作為值的向量
library(data.table)
na.omit(setDT(df)[, paste0("value_", 1:2) := shift(value, type = "lead",
1:2)])
-輸出
month value value_1 value_2
<int> <num> <num> <num>
1: 12 2 3 4
2: 11 3 4 2
3: 10 4 2 3
4: 9 2 3 4
5: 8 3 4 2
6: 7 4 2 3
7: 6 2 3 4
8: 5 3 4 2
9: 4 4 2 3
10: 3 2 3 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.