簡體   English   中英

如何根據不同列中行下方的行中的值創建列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM