簡體   English   中英

R 中的 Dataframe:添加新列,數據來自當前 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM