【发布时间】:2019-06-11 15:48:45
【问题描述】:
我正在尝试将数据框的一列向下移动 1 行。
我将我的字符转换为数据框
final_forecasting <- read.csv(textConnection(forecasts), col.names = c("date", "prediction"))
然后我尝试使用 data.table 包中的 shift 函数:
x <- setDF(shift(final_forecasting))[]
我只想将“预测”列向下移动一行。但是我似乎无法完成它。我也想使用fill函数将单个NA值填为1。
一次尝试x <- setDF(shift(final_forecasting["prediction"]))[]。
数据:
forecasts <- c("2019-03-08 04:59:00,1", "2019-03-08 05:59:00,-1", "2019-03-08 06:59:00,-1",
"2019-03-08 07:59:00,1", "2019-03-08 08:59:00,1", "2019-03-08 09:59:00,1",
"2019-03-08 10:59:00,1", "2019-03-08 11:59:00,-1", "2019-03-08 12:59:00,1",
"2019-03-08 13:59:00,1")
编辑:
另一个尝试:
x <- setDF(shift(final_forecasting, n = 1, fill = NA, type = "shift", give.names = TRUE))[]
【问题讨论】:
-
不确定,但
dplyr的lead()或lag()(忘记哪个向上移v 向下)可能适用于移位部分.. -
我知道其他一些功能,并且有过一两个类似的问题来移动某些列。我只是希望得到
data.table的方法。 -
您可能想阅读文档和插图。
setDT(final_forecasting)[, final_forecasting := shift(prediction, fill=1)]
标签: r data.table