R 将列名读取为日期格式
我在Excel中的日期如下,首先R 将列名读取为日期格式,r,datetime,readxl,R,Datetime,Readxl,我在Excel中的日期如下,首先col1为字符,从col2到col5为日期格式(mm/dd/yyyy) 我尝试使用readxllibrary将上述文件导入R,结果显示了数据集中以日期格式显示为数字的列名 如何导入格式相同的Excel日期列?列名不能是日期类。我们可以读取数据,然后将其从宽格式改为长格式,以便列名以日期类的形式出现在行中,请参见以下内容: # Save Excel sheet as CSV, then read the data with the headers and witho
col1
为字符,从col2
到col5
为日期格式(mm/dd/yyyy)
我尝试使用readxl
library将上述文件导入R,结果显示了数据集中以日期格式显示为数字的列名
如何导入格式相同的Excel日期列?列名不能是日期类。我们可以读取数据,然后将其从宽格式改为长格式,以便列名以日期类的形式出现在行中,请参见以下内容:
# Save Excel sheet as CSV, then read the data with the headers and without checking the names for columns.
df1 <- read.table(text="id 1/1/2016 2/1/2016 3/1/2016 4/1/2016 5/1/2016
1 23 545 33 55 66
2 454 536 66 80 11
3 83 585 9 10 19",
header = TRUE, check.names = FALSE)
library(dplyr)
library(tidyr)
df1 %>%
gather(myDate, value, -id) %>%
mutate(myDate = as.Date(myDate, format = "%d/%m/%Y"))
# id myDate value
# 1 1 2016-01-01 23
# 2 2 2016-01-01 454
# 3 3 2016-01-01 83
# 4 1 2016-01-02 545
# 5 2 2016-01-02 536
# 6 3 2016-01-02 585
# 7 1 2016-01-03 33
# 8 2 2016-01-03 66
# 9 3 2016-01-03 9
# 10 1 2016-01-04 55
# 11 2 2016-01-04 80
# 12 3 2016-01-04 10
# 13 1 2016-01-05 66
# 14 2 2016-01-05 11
# 15 3 2016-01-05 19
#将Excel工作表另存为CSV,然后读取带有标题的数据,而不检查列的名称。
df1%
聚集(myDate,值,-id)%>%
变异(myDate=as.Date(myDate,format=“%d/%m/%Y”))
#id myDate值
# 1 1 2016-01-01 23
# 2 2 2016-01-01 454
# 3 3 2016-01-01 83
# 4 1 2016-01-02 545
# 5 2 2016-01-02 536
# 6 3 2016-01-02 585
# 7 1 2016-01-03 33
# 8 2 2016-01-03 66
# 9 3 2016-01-03 9
# 10 1 2016-01-04 55
# 11 2 2016-01-04 80
# 12 3 2016-01-04 10
# 13 1 2016-01-05 66
# 14 2 2016-01-05 11
# 15 3 2016-01-05 19
由于数据集为excel格式,我们可以使用read\u excel
读取数据集,然后将列名更改为其原始格式
library(readxl)
library(dplyr)
read_excel("yourdata.xlsx" %>%
setNames(., c('id', format(as.Date(as.numeric(names(.)[-1]),
origin = '1899-12-30'), '%m/%d/%Y')))
不确定setNames的第一个参数是否必要。它是由管道提供的。
library(readxl)
library(dplyr)
read_excel("yourdata.xlsx" %>%
setNames(., c('id', format(as.Date(as.numeric(names(.)[-1]),
origin = '1899-12-30'), '%m/%d/%Y')))