【发布时间】:2015-09-02 16:57:06
【问题描述】:
对于示例数据框:
light <- structure(list(daylight.hours = structure(c(62L, 22L, 60L, 58L,
34L, 37L), .Label = c("07:12:05", "07:14:41", "07:18:24", "07:28:59",
"07:31:07", "07:45:51", "07:48:08", "07:51:29", "07:52:06", "07:58:18",
"08:01:16", "08:07:25", "08:10:08", "08:18:16", "08:23:33", "08:27:03",
"08:30:36", "08:34:13", "08:41:35", "08:46:01", "08:53:52", "08:54:17",
"09:31:16", "09:35:29", "09:39:44", "10:27:19", "10:31:45", "10:36:12",
"11:53:41", "12:11:39", "12:16:10", "12:20:23", "12:34:10", "14:18:26",
"14:22:41", "14:26:55", "14:35:21", "14:39:49", "14:44:00", "14:48:09",
"14:54:29", "14:59:08", "15:03:18", "15:11:01", "15:15:38", "15:15:52",
"15:19:09", "15:58:22", "16:07:10", "16:08:33", "16:24:12", "16:27:14",
"16:42:57", "16:55:32", "16:57:52", "17:00:06", "17:02:15", "17:03:49",
"17:04:17", "17:05:24", "17:06:14", "17:06:53", "17:08:05", "17:09:38",
"17:11:04", "17:12:24", "17:13:26", "17:13:47", "17:14:22", "17:14:32",
"17:14:42", "17:14:44", "17:15:39", "17:15:40", "17:16:22", "17:16:51",
"17:17:55"), class = "factor"), school.id = c(4L, 4L, 4L, 4L,
14L, 14L)), .Names = c("daylight.hours", "school.id"), row.names = c(NA,
6L), class = "data.frame")
我想创建另一个名为 d.daylight 的变量来将日光时间变量更改为小数。 (即 18:30:00 将读取 18.5)
当我使用以下内容时,它会自动输入今天的日期,这不是我所追求的(一切都在 24 小时以内)。
light$d.daylight <- as.POSIXlt(light$daylight.hours, format="%H:%M:%S")
谁能告诉我如何纠正这个问题?
【问题讨论】:
-
如果你在发帖前
light$daylight.hours <- factor(light$daylight.hours),你的dput会小很多。这里有很多空级别。 -
您可以查看here
-
为了到达@akruns 链接中的输入,您可以执行
gsub("(\\d{2}):(\\d{2}).*", "\\1:\\2", light$daylight.hours)之类的操作。或者只是为了好玩,你也可以这样做library(gsubfn) ; as.numeric(gsubfn("(\\d{2}):(\\d{2}).*", ~ as.numeric(x) + round(as.numeric(y)/60, 2), as.character(light$daylight.hours)))
标签: r