使用lapply或Map在数据帧列表中处理相同的变量

时间:2015-01-15 16:55:13

标签: r apply lapply

我设法通过使用this优雅.csv解决方案导入10个lapply文件。 输出现在是list 10 data.frames。 每个data.frame都包含变量yearvalue

 file_names <- dir("../XYZ", pattern = glob2rx("*.csv"))
 data_list <- lapply(filenames, read.table, header = TRUE)
 head(data_list[[1]])
  year     value
1 200712   2320,00 
2 200712   120,00    
3 200712   188,00 
4 200712   1328,00    
5 200712   46,00    
6 200712   98,00 
 head(data_list[[2]])
  year     value
1 200812   320,00 
2 200812   1120,00    
3 200812   1288,00 
4 200812   1128,00    
5 200812   746,00    
6 200812   938,00 

很遗憾,变量year的格式为yyyymm,但我希望它为yyyy

因此,我想使用其他lapplyMap来更改每个data.frame中year的格式。类似的东西:

data_list <- lapply(data_list[["year"]], FUN = substr(1,4), ... )

或:

data_list <- Map(substr(1,4), data_list, "year")

但那不起作用......有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你可以尝试

data_list <- lapply(data_list, function(x) {x$year <- substr(x$year, 1,4)
                                   x})