将时间转换为R中的字符

将时间转换为R中的字符,r,time,R,Time,我从具有以下时间值的csv文件中读取数据帧dtmn 在Excel中显示: 7/4/2014 13:08 当我在R中阅读时,它显示: > x <- dtmn[2,1] > x [1] 7/4/2014 Levels: 0.547222222 7/4/2014 7/4/2014 13:08 788 函数as.character.Posixt(dtmn[2,1])仅返回日期:[1]“7/4/2014” 但我也试图把时间也包括在内。因此,所需的输出可能如下所示: “07/04/201

我从具有以下时间值的csv文件中读取数据帧
dtmn

在Excel中显示:
7/4/2014 13:08

当我在R中阅读时,它显示:

> x <- dtmn[2,1]
> x
[1] 7/4/2014
Levels: 0.547222222 7/4/2014 7/4/2014 13:08 788
函数
as.character.Posixt(dtmn[2,1])
仅返回日期:
[1]“7/4/2014”
但我也试图把时间也包括在内。因此,所需的输出可能如下所示:
“07/04/2014 13:08”


请帮忙,

里奇·斯克里文的评论帮助我理解了这一点。我检查了班级和级别

> class(dtmn[2,1])
[1] "factor"
> levels(dtmn[2,1])
[1] "0.547222222"    "7/4/2014"       "7/4/2014 13:08" "788" 
最后,将第三级调用为角色:

> as.character(levels(dtmn[2,1])[3])
[1] "7/4/2014 13:08"

解决这个问题的一个简单方法是使用
readxl
包。假设您有一个名为
excel\u file.xlsx
的excel文件,并且您的数据列在excel中的格式为日期:

date_from_excel
07/04/14 13:08
07/04/14 21:30
07/12/14 10:18

library(readxl)

df = read_excel(path=paste0("/<path-to-the-file>/",'excel_file.xlsx'), sheet=1, col_names=T, col_types=c('date') )
df = as.data.frame(df)
df$date_as_string = as.character(df$date_from_excel)

> df
  date_from_excel      date_as_string
1 2014-04-07 13:08:00 2014-04-07 13:08:00
2 2014-04-07 21:30:00 2014-04-07 21:30:00
3 2014-12-07 10:18:00 2014-12-07 10:18:00

> str(df)
'data.frame':   3 obs. of  2 variables:
 $ date_from_excel: POSIXct, format: "2014-04-07 13:08:00" "2014-04-07 21:30:00" ...
 $ date_as_string : chr  "2014-04-07 13:08:00" "2014-04-07 21:30:00" "2014-12-07 10:18:00"
excel中的日期 07/04/14 13:08 07/04/14 21:30 07/12/14 10:18 图书馆(readxl) df=read_excel(path=paste0(“/”,'excel_file.xlsx'),sheet=1,col_names=T,col_types=c('date')) df=as.data.frame(df) df$date\u as\u string=as.character(来自excel的df$date\u) >df 日期\u来自\u excel日期\u作为\u字符串 1 2014-04-07 13:08:00 2014-04-07 13:08:00 2 2014-04-07 21:30:00 2014-04-07 21:30:00 3 2014-12-07 10:18:00 2014-12-07 10:18:00 >str(df) “data.frame”:3个obs。共有2个变量: $date_from_excel:POSIXct,格式:“2014-04-07 13:08:00”“2014-04-07 21:30:00”。。。 $date作为字符串:chr“2014-04-07 13:08:00”“2014-04-07 21:30:00”“2014-12-07 10:18:00”
我想你首先应该问问自己,你是如何得到这些混乱的数据的。我会回溯并尝试解决该问题,然后转换为日期时间会容易得多。数据框
dtmn
来自excel csv文件,我用R读取。在excel中,它看起来就像“7/4/2014 1:08:00 PM”。我认为R对它做了些什么,并以某种我不理解的方式解释了它。但出于我的目的,我只需要它作为一个字符值。
date_from_excel
07/04/14 13:08
07/04/14 21:30
07/12/14 10:18

library(readxl)

df = read_excel(path=paste0("/<path-to-the-file>/",'excel_file.xlsx'), sheet=1, col_names=T, col_types=c('date') )
df = as.data.frame(df)
df$date_as_string = as.character(df$date_from_excel)

> df
  date_from_excel      date_as_string
1 2014-04-07 13:08:00 2014-04-07 13:08:00
2 2014-04-07 21:30:00 2014-04-07 21:30:00
3 2014-12-07 10:18:00 2014-12-07 10:18:00

> str(df)
'data.frame':   3 obs. of  2 variables:
 $ date_from_excel: POSIXct, format: "2014-04-07 13:08:00" "2014-04-07 21:30:00" ...
 $ date_as_string : chr  "2014-04-07 13:08:00" "2014-04-07 21:30:00" "2014-12-07 10:18:00"