如何根据不同列中行下方行中的值创建列
How to create a column based on values in the rows below the row in a different column
我有这样的数据集
data <- data.frame(A = c(3,12,3,5,6,3,9,134,13,23))
我想使用 A 行值创建一个新的 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
我有这样的数据集
data <- data.frame(A = c(3,12,3,5,6,3,9,134,13,23))
我想使用 A 行值创建一个新的 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