在现有列上创建一个新列,但在上面排

时间:2017-10-20 10:05:17

标签: r

我想基于现有列创建一个新列,但是

上面有一行

从:

开始
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"))

感谢您提供的任何帮助

2 个答案:

答案 0 :(得分:1)

来自包shift的{​​{1}}的一种方式:

data.table

答案 1 :(得分:1)

使用dplyr可以使用mutatelag函数完成此操作:

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
相关问题