我試圖在數據框的列上使用滯後,但是當涉及時間它不會工作。我嘗試過移位,滯後和tlag。R先導和滯後(移位)與時間
實施例:
y = strptime(sprintf("%s:%s:%s", 4, 20, 10), "%H:%M:%S")
yy = strptime(sprintf("%s:%s:%s", 10, 20, 10), "%H:%M:%S")
lag(c(y,yy))
錯誤format.POSIXlt(X,usetz = usetz): 無效成分[[10]]在 「POSIXlt」 應爲 '區域'
tlag(c(y,yy))
錯誤n_distinct_multi(列表(...),na.rm): 參數「時間」缺失,沒有默認設置
shift(c(y,yy))
[[1]]
[1] NA 10
[[2]]
[1] NA 20
[[3]]
[1] NA 4
[[4]]
[1] NA 4
[[5]]
[1] NA 6
[[6]]
[1] NA 117
[[7]]
[1] NA 2
[[8]]
[1] NA 184
[[9]]
[1] NA 1
[[10]]
[1] NA "BST"
[[11]]
[1] NA 3600
我不希望任何時間差,我只是想在上面我的數據幀,我認爲從該行的值是什麼做的滯後:「先導和滯後對比較由常數偏移的值有用(例如,上一個或下一個值)「。 時間應該不重要,它應該從上一個位置選擇任何數字/字符/時間。我該如何解決這個問題,或者是否有一個不同的功能,它相當於我倒是喜歡 - 我不想涉及任何環路作爲速度是很重要的數據幀都很大
實例從我的數據幀。
structure(list(sec = c(52, 53, 54, 55, 56, 57, 58, 59, 0, 1),
min = c(50L, 50L, 50L, 50L, 50L, 50L, 50L, 50L, 51L, 51L),
hour = c(11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L
), mday = c(4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), mon = c(6L,
6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L), year = c(117L, 117L,
117L, 117L, 117L, 117L, 117L, 117L, 117L, 117L), wday = c(2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), yday = c(184L, 184L,
184L, 184L, 184L, 184L, 184L, 184L, 184L, 184L), isdst = c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), zone = c("BST", "BST",
"BST", "BST", "BST", "BST", "BST", "BST", "BST", "BST"),
gmtoff = c(NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_)), .Names = c("sec", "min", "hour", "mday", "mon",
"year", "wday", "yday", "isdst", "zone", "gmtoff"), class = c("POSIXlt",
"POSIXt"))
這將是更好張貼包含在文本提到的數據幀重複的例子。我的懷疑是,你想要做的事情很簡單,使用變異和滯後的方法來完成,但目前很難看清楚。 – JanLauGe
什麼是預期產出? – AK88
那麼數據框會和上面的矢量一樣,它會顯示錯誤而不是預期的'NA',2017-07-04 04:20:10 BST「' – Olivia