我有一个这样的数据集
data <- data.frame(A = c(3,12,3,5,6,3,9,134,13,23))
我想使用A行的值来创建一个新的列B,这个列B是基于A下面的一行,像这样。
A B
1 3 12
2 12 3
3 3 5
4 5 6
5 6 3
6 3 9
7 9 134
8 134 13
9 13 23
10 23 NA
我试过用dplyr(即mutate),但我有点不明白。
谢谢你!我有一个这样的数据集。
我们可以用 lead
library(dplyr)
data <- data %>%
mutate(B = lead(A))
data
# A B
#1 3 12
#2 12 3
#3 3 5
#4 5 6
#5 6 3
#6 3 9
#7 9 134
#8 134 13
#9 13 23
#10 23 NA
或与 base R
去掉'A'的第一个元素,并在后面加上 NA
到了
data$B <- c(data$A[-1], NA)
您可以使用 tail
:
data$B <- c(tail(data$A, -1), NA)
data
# A B
#1 3 12
#2 12 3
#3 3 5
#4 5 6
#5 6 3
#6 3 9
#7 9 134
#8 134 13
#9 13 23
#10 23 NA