【发布时间】:2020-10-05 10:26:15
【问题描述】:
亲爱的...
考虑到日期和时间格式,我需要在 data.frame 中获取数据。为此,我创建了这样的 data.frame 结构:
df <- data.frame(action = character(),
date = as.Date(character(), format = "%Y%m%d"),
time = charcter()) #I didn't find a way to format time :(
我正在使用 read_lines 命令读取文件,当我从文件中获取数据时,我设法像这样格式化日期:
# Date position in line is 44-51
my_date <- as.Date(as.character(str_sub(line, 44, 51)), format = "%Y%m%d")
#Time position in line is 52-57
my_time <- paste(str_sub(l,52,53),":",str_sub(l,54,55),":",str_sub(l,56,57), sep="")
如果我打印 my_date 和 my_time,格式是完美的,但是当我分配给 data.frame 时,它会弄乱格式。我希望使用 data.frame 中的日期和时间数据来计算信息。例如,如果我有格式来计算天数、小时数,那就太好了。
#dput of my_date
.structue(15431, class = "Date")
#dput of my_time
"18:59:39"
您怎么看,我已将 my_date 设置为日期格式,但是当我在 data.frame 中分配时它会变得混乱。关于 my_time,我只是将字符格式设置为可视化,但我不知道将时间格式化为 HH:MM:SS。
感谢您的帮助。
嗨,伊恩 首先,感谢您花时间帮助我。 当我将值分配给 data.frame 时,问题仍然存在。我想我在那里做错了什么。见...
当我收集日期和格式时:
[1] "2012-04-01"
[1] "18:59:30"
[1] "2012-04-01 18:59:00 -03"
structure(1333317540, class = c("POSIXct", "POSIXt"), tzone = "")
第一行是打印命令在日期变量上的结果,格式为
date <- as.Date(as. character(str_sub(l, 44,51), format = "%Y%m%d").
没关系! 第二行是打印命令随时间变化的结果,格式为
time <- paste(str_sub(l,52,53),":",str_sub(l,54,55),":",str_sub(l,56,57), sep="")
没关系!
3dr 行是打印命令在 date_time 变量上的结果,格式为
date_time <- as.POSIXct(paste(date, time), format="%Y-%m-%d %H:%M%OS")
根据您的提示,非常完美!
第 4 行是 dput(date_time) 的结果,而传递给 data.frame 的值是 1333317540 3dr 行。
我像这样声明空白 data.frame:
df <- data.frame(ass_source = character(),
eot_ass_source = character(),
area_ass_source = character(),
#date = as.Date(character(), format = "%Y%m%d"),
#time = character(),
date_time = as.POSIXct(character(), format = "%Y-%m%d %H:M%OS"))
我正在输入这样的数据(进入 for 循环):
df <- rbind(df, list(ass_source=ass_source,
eot_ass_source=eot_ass_source,
area_ass_source=area_ass_source,
#date=as.Date(as.character(date), format= "%Y%m%d"),
#time=time,
date_time=date_time))
【问题讨论】:
-
嗨 Beto,欢迎来到 Stack Overflow。你能提供
dput(my_date[1:10])和dput(my_time[1:10])吗?您可以edit您的问题并粘贴输出。请用三个反引号(```)包围输出以获得更好的格式。请参阅How to make a reproducible example 了解更多信息。 -
我刚刚展示了 dput 结果。 TKS!
标签: r dataframe time format as.date