r - 在现有列的基础上创建一个新列,但在上面的行

标签 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"))

感谢您提供的任何帮助

最佳答案

使用 data.table 包中的 shift 的一种方法:

library(data.table)
df$c <- shift(df$b, 1)

df
#    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

关于r - 在现有列的基础上创建一个新列,但在上面的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46846803/

相关文章:

R按条件行号选择多行

javascript - 在 Shiny 环境中将 Leaflet 控件放在 map div 之外

r - 是否可以让RStudio显示自定义函数的函数参数和描述?

r - 对矩阵/数据框中的行组进行操作

r - 软件包正在使用中,不会被安装

r - 什么是 R 中的整数溢出,它是如何发生的?

r - For() 循环查找其他日期之间的 ID 日期并计算平均值

r - 如何在 R 中读取 .hdf 文件?

r - 如何提供(逻辑)运算符作为函数的参数

r - 具有多列条件的dplyr过滤器