繁体   English   中英

如何将日期字符串列转换为R中的日期

[英]How to convert a column of date string to dates in R

我有一个使用read.csv读取的CSV文件

ff = read.csv('ff5.csv',  col.names = c('date','mkt', 'smb','hml','rmw','cma','rf'), colClasses = c('character',rep('numeric',6)))

日期列的格式为“ 197007”。 它只给出年和月,所以我在动物园程序包中求助于as.yearmon来转换日期列

as.Date(as.yearmon(date,'%Y%m'))

现在,对于日期列中的每个条目,它都可以使用。 但是,当我尝试像这样将其分配回列条目时,它为我提供了字符编号!

library(zoo)

ff = read.csv('ff5.csv',  col.names = c('date','mkt', 'smb','hml','rmw','cma','rf'), colClasses = c('character',rep('numeric',6)))

for (i in 1:length(ff$date)){
  date = ff$date[i]
  d = as.Date(as.yearmon(as.character(date),'%Y%m'))
  ff$date[i] = d
}

我该如何解决? 数据可以在这里下载

http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/F-F_Research_Data_5_Factors_2x3_CSV.zip

无需使用循环。

txt <- "197007
198511
201512"

library(zoo)
ff <- read.table(text=txt, col.names = "date")
ff$date <- as.Date(as.yearmon(as.character(ff$date), "%Y%m"))

str(ff)
'data.frame':   3 obs. of  1 variable:
 $ date: Date, format: "1970-07-01" "1985-11-01" ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM