【发布时间】:2018-06-26 11:17:57
【问题描述】:
我知道这个问题以不同的形式被问过很多次(例如,here 或 here)。
但是,我仍然无法将数字/字符串转换为时间。
我的数据集是一个我导入的excel文件,看起来像这样:
df <- structure(list(ID = c(322, 322, 322, 322, 322, 322), Cue = c("F1",
"F1", "F2", "F3", "F4", "F5"), TimeComming = c("1", "1", "1",
"1", "1", "1"), Time = c("0.690210162037037", "0.69030296296296301",
"0.69652906250000002", "0.70100131944444399", "0.70550445601851897",
"0.71043541666666699"), Stime = c("1.0058333333330394E-3", "1.0986342592590459E-3",
"7.3247337962960568E-3", "1.1796990740740032E-2", "1.6300127314815005E-2",
"2.1231087962963024E-2")), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -6L), .Names = c("ID", "Cue", "TimeComming",
"Time", "Stime"))
df
# A tibble: 6 x 5
ID Cue TimeComming Time Stime
<dbl> <chr> <chr> <chr> <chr>
1 322. F1 1 0.690210162~ 1.00583333~
2 322. F1 1 0.690302962~ 1.09863425~
3 322. F2 1 0.696529062~ 7.32473379~
4 322. F3 1 0.701001319~ 1.17969907~
5 322. F4 1 0.705504456~ 1.63001273~
6 322. F5 1 0.710435416~ 2.12310879~
所需的输出应如下所示:
ID Cue TimeComming Time Stime
1 322 F1 1 16:33:54 00:01:26.904
2 322 F1 1 16:34:02 00:01:34.922
3 322 F2 1 16:43:00 00:10:32.857
4 322 F3 1 16:49:27 00:16:59.260
5 322 F4 1 16:55:56 00:23:28.331
6 322 F5 1 17:03:02 00:30:34.366
【问题讨论】:
-
这是什么格式?
-
在 excel
Time在格式单元格中定义为时间类型 13:30:55,时间 - 自定义 - 类型 hh:mm:ss.000 -
Time字段似乎是 24 小时的一小部分,而Stime字段以分钟为单位 -
你不能在 Excel 中将列定义为“文本”,以避免在从 Excel 写入时出现有趣的 Excel 转换吗?
-
as.POSIXct(24 * 3600 * 0.690210162, origin = "2018-01-01", tz = "UTC")。然后用format来抢时间部分。