gpt4 book ai didi

r - 数据帧合并中的双时间戳

转载 作者:行者123 更新时间:2023-12-01 12:45:41 24 4
gpt4 key购买 nike

我确实有一个看起来像这样的 df:

time,v1,v1,v3,v4
1352639505, , ,94,101
1352639565, , ,94,101
1352639505,10,222, ,
1352639565,11,221, ,

第一个是 1970-01-01 的 UTC 时间戳 - 所以我会使用as.POSIXct(df$time,origin="1970-01-01",tz="UTC")。但正如您所见,日期是双倍的。 NA 和值被跳过。如何合并数据框中的相同日期?先设置为.POSIXct 还是合并?

结果应该是这样的:

time,v1,v1,v3,v4
1352639505,10,222,94,101
1352639565,11,221,94,101

当然也可以是真正约会之后的动物园!谢谢!

最佳答案

我会单独处理您的 data.frame 的每一列。对于每一列,从列和时间索引中删除缺失的观察值,然后构造您的 zoo 对象。然后您可以使用 do.call 在您的 zoo 对象列表上调用 merge

# helper function to build zoo objects with no missing values
f <- function(v, i) {
na <- is.na(v)
iposix <- as.POSIXct(i, origin="1970-01-01", tz="UTC")
zoo(v[!na], iposix[!na])
}
df <- structure(list(time = c(1352639505L, 1352639565L, 1352639505L,
1352639565L), v1 = c(NA, NA, 10L, 11L), v1 = c(NA, NA, 222L,
221L), v3 = c(94L, 94L, NA, NA), v4 = c(101L, 101L, NA, NA)), .Names = c("time",
"v1", "v1", "v3", "v4"), class = "data.frame", row.names = c(NA, -4L))
library(zoo)
Data <- do.call(merge, lapply(df[-1], f, i=df$time))
Data
# v1 v1.1 v3 v4
# 2012-11-11 07:11:45 10 222 94 101
# 2012-11-11 07:12:45 11 221 94 101

关于r - 数据帧合并中的双时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16223241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com