将标题中的日期从Excel转换/维护到R.

时间:2017-07-13 00:56:20

标签: r excel date

我有一个Excel电子表格,标题中包含日期。我想将电子表格导入R,大概是使用read.xlsx()函数。但是,日期将从Excel转换为内部值的字符串,其中包含" X"在前面。我希望将日期保留为Date类,或将字符串转换为Date。我知道如果日期至少是一种格式,或者来自指定原点的天数,我可以使用as.Date(),但它有" X"。

非常感谢您的帮助。

EG。

excel电子表格"练习"

Sample  09-Jul  10-Jul  11-Jul
1   3   10  2
2   5   0   
3   1   0   0

然后在R:

practice<-read.xlsx("Practice.xlsx")

Sample X42925 X42926 X42927
1      1      3     10      2
2      2      5      0     NA
3      3      1      0      0

practice2=gather(practice,Date,value,-Sample,na.rm=TRUE)

Sample   Date value
1      1 X42925     3
2      2 X42925     5
3      3 X42925     1
4      1 X42926    10
5      2 X42926     0
6      3 X42926     0
7      1 X42927     2
9      3 X42927     0

practice2$Date=as.Date(practice2$Date)

Error in charToDate(x) : 
  character string is not in a standard unambiguous format

2 个答案:

答案 0 :(得分:3)

X42925是Excel序列日期,大致对应于1900年1月1日之后42925天的日期。我们可以使用as.Date将这些序列日期转换为R日期,并使用适当的来源

您应该可以使用以下内容转换Date列。这假定以X为前缀的日期作为文本读入。

dates <- as.numeric(substr(practice2$Dates, 2, nchar(practice2$Dates)))
practice2$Dates <- as.Date(dates, origin = '1899-12-30')

Demo

答案 1 :(得分:1)

尝试将Excel文件另存为.csv。这会将您的数据和日期转换为纯文本,这应该导入到R中,没有任何问题。

或者,尝试以下方法之一: http://www.milanor.net/blog/read-excel-files-from-r/

祝你好运!