Добавить новый столбец, равный другому столбцу на один индекс раньше в R - PullRequest
0 голосов
/ 12 марта 2020

У меня есть такой фрейм данных:

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

Я хочу создать 2 других столбца val_1, val_2, которые равны соответственно value и val_1, которые на один индекс раньше:

date        value   val_1   val_2
2020-01-01    5      NA      NA
2020-01-01    6      5       NA
2020-01-01    7      6       5

как мне это сделать?

1 Ответ

1 голос
/ 12 марта 2020

Вы можете использовать sapply для манипулирования length s.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...