【发布时间】:2020-03-19 19:17:30
【问题描述】:
我导入了一个csv,其中从#5 开始的列是需要清理的日期,因为它们的格式为X1.10.20,我希望格式为YYYY-MM-DD。我正在使用gsub() 将数据清理为lubridate 的可识别形式,然后使用mdy() 进行转换
library(tidyverse)
library(lubridate)
df <- read.csv("df.csv", stringsAsFactors = FALSE)
names(df) <- gsub("X", "", names(df)) #remove leading X
names(df) <- gsub("\\.", "-", names(df)) #convert . to -
日期列现在具有以下格式:M-D-YY
dates <- mdy(names(df[,-c(1:4)])) #take current names and assign converted names to `dates` vector
日期向量现在包含YYYY-MM-DD 格式的日期。我想取这个dates 向量并将其分配为列4:length(df) 中的名称
我尝试了以下方法:
names(df[,-c(1:4)]) <- dates ,但原始数据框中的列名保持不变。并保持M-D-YY 的格式。
我觉得我可能想多了,重命名特定列可能有更简单的方法。我也从dplyr 尝试过rename(),但只在单独命名列方面取得了成功,而且这个数据集有数百列。
我该怎么办?感谢您的意见...
【问题讨论】:
-
您可能需要一些前缀,因为 R 中以数字开头的列名无效。您可能还想查看
?make.names。
标签: csv lubridate dplyr r dplyr lubridate