r - 如何在R中滞后数据框的特定列
问题描述
输入(说 d 是下面的数据框。)
a b c
1 5 7
2 6 8
3 7 9
我想将 b 列的内容向下移动一个位置,并将任意数字放在 b 的第一个位置。我该怎么做呢?我将不胜感激在这方面的任何帮助。谢谢你。
我试过 c(6,tail(d["b"],-1)) 但它不会产生 (6,5,6)。
输出
a b c
1 6 7
2 5 8
3 6 9
解决方案
head
改为使用
df$b <- c(6, head(df$b, -1))
# a b c
#1 1 6 7
#2 2 5 8
#3 3 6 9
你也可以lag
使用dplyr
library(dplyr)
df %>% mutate(b = lag(b, default = 6))
或shift
在data.table
library(data.table)
setDT(df)[, b:= shift(b, fill = 6)]
推荐阅读
- c++ - 如何让用户在不按 Enter 的情况下插入内容
- python - 通过 GitHub 存储库在 Heroku 中部署应用程序时,存储身份验证数据的最安全方法是什么?
- algorithm - 合并排序变体 - 时间复杂度
- python - 来自多个外键的 Django-tables2 URL 链接不起作用
- c++ - SetConsoleCursorPosition() 函数的问题
- sql-server - 使用计数器在 SQL Server 中创建百分比
- kotlin - 为什么不能访问具体类型参数的伴随对象?
- matlab - 从 CSV 值中读取 DateTime
- css - 配置之前使用过的转发模块时出现SASS错误
- tensorflow - tf.nn.depth_to_space vs pixel_shuffle