Convert/Maintain Dates in Header from Excel to R
我有一个 Excel 电子表格,标题中有日期。我想将电子表格导入 R,大概使用 read.xlsx() 函数。但是,日期从 Excel 转换为内部值的字符串,前面带有 “X”。我希望将日期保留为日期类,或将字符串转换为日期。我知道我可以使用 as.Date() 如果日期至少是一种格式,或者是从指定来源开始的天数,但它有 “X”。
非常感谢您的帮助。
例如。
excel 电子表格”Practice”
1
2 3 4 |
Sample 09-Jul 10-Jul 11-Jul
1 3 10 2 2 5 0 3 1 0 0 |
然后在 R:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
practice<-read.xlsx(“Practice.xlsx”)
Sample X42925 X42926 X42927 practice2=gather(practice,Date,value,-Sample,na.rm=TRUE) Sample Date value practice2$Date=as.Date(practice2$Date) Error in charToDate(x) : |
值 X42925 是 Excel 序列日期,大致对应于 1900 年 1 月 1 日之后 42925 天的日期。我们可以使用具有适当来源的 as.Date 将这些序列日期转换为 R 日期。
您应该能够使用以下内容转换您的日期列。这假定以 X 为前缀的日期是作为文本读入的。
1
2 |
dates <- as.numeric(substr(practice2$Dates, 2, nchar(practice2$Dates)))
practice2$Dates <- as.Date(dates, origin = ‘1899-12-30’) |
演示
- 这对我的整个数据集都非常有效,非常感谢!
尝试将 Excel 文件另存为 .csv。这会将您的数据和日期转换为纯文本,应该可以毫无问题地导入 R。
或者,尝试以下方法之一:
http://www.milanor.net/blog/read-excel-files-from-r/
祝你好运!
- 我希望避免使用 read.csv,因为我的整个数据集要经常更新,我想编写代码以便我可以运行它,而不必每次都保存单独的 .csv,但仍然感谢您!
来源:https://www.codenong.com/45069768/