我想基于现有列创建一个新列,但是
上面有一行从:
开始df <- data.frame(a=c(1:10), b=c("red", "yellow", "blue", "green", "yellow", "purple", "blue", "green", "yellow", "purple"))
结果如下:
df <- data.frame(a=c(1:10), b=c("red", "yellow", "blue", "green", "yellow", "purple", "blue", "green", "yellow", "purple"), c=c("na", "red", "yellow", "blue", "green", "yellow", "purple", "blue", "green", "yellow"))
感谢您提供的任何帮助
答案 0 :(得分:1)
来自包shift
的{{1}}的一种方式:
data.table
答案 1 :(得分:1)
使用dplyr
可以使用mutate
和lag
函数完成此操作:
library(dplyr)
mutate(df, c = lag(b))
#> a b c
#> 1 1 red <NA>
#> 2 2 yellow red
#> 3 3 blue yellow
#> 4 4 green blue
#> 5 5 yellow green
#> 6 6 purple yellow
#> 7 7 blue purple
#> 8 8 green blue
#> 9 9 yellow green
#> 10 10 purple yellow