我希望下面的问题不是太琐碎。我是 R 的新手,所以我非常感谢帮助和建议!我有一个 data.list,其中包含 ot tibbles 形式的 data.frames。以前我自己使用 data.frames。xlxs 格式的 data.frames。这是 data.frime 的结构,在我调整名为“时间”的列之前:
structure(list(Time = structure(c(-2209074960, -2209074900, -2209074840,
-2209074780, -2209074720, -2209074660, -2209074600, -2209074540,
-2209074480, -2209074420, -2209074360, -2209074300, -2209074240,
-2209074180, -2209074120, -2209074060, -2209074000, -2209073940,
-2209073880, -2209073820), tzone = "UTC", class = c("POSIXct",
"POSIXt")), Kcal = c(1.899, 2.859, 2.519, 2.89, 2.89, 2.88, 3.68,
3.73, 3.07, 4.579, 4.889, 5.449, 9.51, 13.56, 13.63, 14.109,
14.289, 14.38, 14.84, 0.509), MET = c(2.5, 3.3, 3.3, 4.2, 4.6,
4.5, 6.2, 6.9, 7.4, 8.1, 9.5, 10.5, 11.6, 12.2, 12.8, 13.4, 13.8,
14.2, 14.3, 14.5), `MET in Kcal` = c(3.4125, 4.5045, 4.5045,
5.733, 6.279, 6.1425, 8.463, 9.4185, 10.101, 11.0565, 12.9675,
14.3325, 15.834, 16.653, 17.472, 18.291, 18.837, 19.383, 19.5195,
19.7925)), row.names = c(NA, -20L), class = c("tbl_df", "tbl",
"data.frame"))
data.frame 中的一列名为“时间”。值“时间”作为字符导入。为了调整时间,我将以下代码应用于我的 data.list:
for(i in seq_along(ErgoWithings_list))
{ErgoWithings_list[[i]]$Time <- gsub("1899-12-31 ","",as.character(ErgoWithings_list[[i]]$Time))}
到目前为止,这工作正常。当我自己使用 data.frame 时,我做了以下操作,将“时间”设置为时间值:
MyDateTime <- df$Time
MyDateTime <- strptime(MyDateTime, format = "%H:%M:%OS")
MyDateTime <- as.POSIXct(as.numeric(as.POSIXct(MyDateTime)) %% 86400, origin = "2021-09-28")
df$Time <- MyDateTime
这对我来说很好。我现在尝试将其应用于整个列表:
for(i in seq_along(ErgoWithings_list))
{MyDateTime <- ErgoWithings_list[[i]]$Time
MyDateTime <- strptime(MyDateTime, format = "%H:%M:%OS")
MyDateTime <- as.POSIXct(as.numeric(as.POSIXct(MyDateTime)) %% 86400, origin = "2021-09-28")
ErgoWithings_list[[i]]$Time <- MyDateTime}
但是,这不起作用,因为我收到通知,'}' 是出乎意料的。
如果我这样尝试:
for(i in seq_along(ErgoWithings_list))
MyDateTime <- ErgoWithings_list[[i]]$Time
MyDateTime <- strptime(MyDateTime, format = "%H:%M:%OS")
MyDateTime <- as.POSIXct(as.numeric(as.POSIXct(MyDateTime)) %% 86400, origin = "2021-09-28")
ErgoWithings_list[[i]]$Time <- MyDateTime
只有列表中的最后一个 data.frame 以某种方式发生了变化,但之前没有一个。有人可以帮我调整时间吗?此外,理想情况下,我只想要 data.frames/tibbles 中的给定时间,而不需要日期(我通过'origin =...'设置)。但我不知道如何解决它。谢谢!