在R中添加一个新列,该列等于另一列的索引

在R中添加一个新列,该列等于另一列的索引,r,R,我有这样一个数据帧: date <- as.Date(c('2020-01-01','2020-01-02','2020-01-03')) value <- c(5,6,7) df <- data.frame(date, value) 如何操作?您可以使用sapply来操作长度 df <- setNames(cbind(df, sapply(1:2, function(i) c(rep(NA, i), x[-(length(x):(length(x)-(i-1))

我有这样一个数据帧:

date <- as.Date(c('2020-01-01','2020-01-02','2020-01-03'))
value <- c(5,6,7)
df <- data.frame(date, value)

如何操作?

您可以使用
sapply
来操作
长度

df <- setNames(cbind(df, sapply(1:2, function(i) 
  c(rep(NA, i), x[-(length(x):(length(x)-(i-1)))]))),
  c(names(df), paste0("val_", 1:2)))
df
#         date value val_1 val_2
# 1 2020-01-01     5    NA    NA
# 2 2020-01-02     6     5    NA
# 3 2020-01-03     7     6     5
df使用
library(dplyr)
,您可以执行
lag(值,1)
lag(值,2)
df <- setNames(cbind(df, sapply(1:2, function(i) 
  c(rep(NA, i), x[-(length(x):(length(x)-(i-1)))]))),
  c(names(df), paste0("val_", 1:2)))
df
#         date value val_1 val_2
# 1 2020-01-01     5    NA    NA
# 2 2020-01-02     6     5    NA
# 3 2020-01-03     7     6     5