![](/img/trans.png)
[英]How to create a column based on values in the rows above/below the row in a different column in R
[英]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 行的值來創建一個基於 A 下面的一行的新列 B。像這樣:
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 (即變異),但我有點難過。
謝謝!
我們可以使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.