R语言批量处理2——导入excel,定位提取合并为数据框data.frame

问题:

R语言批量导入数据生成list表,然后提取每个list表相同变量数据,生成数据框形式data.frame。

一、apply族应用

常用apply、lapply和sapply

掌握R语言中的apply函数族

二、批量excel数据导入

这个前面文章已经写了,基本思路为
1.赋值文件路径;
2.提取路径下所有文件名dir(path);
3.迭代生成所有文件的路径名,paste(),sapply(),
4.迭代导入所有文件生成list,lapply()。

path <- ("I:\\20200818")
filenames <- dir(path);head(filenames)
filepath <- sapply(filenames, function(x){
    
    
  paste(path,x,sep = "\\")})
flu_data_18.1 <- lapply(filepath[1:13],function(x){
    
    
  read.csv(x,sep = ",")})
  
> class(filepath)
[1] "character"
> class(flu_data_18.1)
[1] "list"
> class(flu_data_18.1[[1]])
[1] "data.frame"

R语言批量输出list文件及数据框计算

三、list表中的数据提取

1.单个list定位提取

> flu_data_18.1[[1]][c(5,19),c(3,4,9:19)]
       Time No.   Fo.   Fm. X.Fo. Y.II. Y.NPQ. Y.NO.   NPQ    qN    qP    
5  02:21:55   1 0.000 2.405 0.792 0.671  0.000 0.329 0.000 0.000 1.000 
19 02:26:59  15 0.000 0.996 0.540 0.422  0.339 0.240 1.415 0.717 0.922 

2.批量定位提取合并数据框

flu_data_18_1 <- data.frame()
 for (i in 1:13) {
    
    
  df1 <- data.frame(flu_data_18.1[[i]][c(1,15),c(3,4,9:19)])
  flu_data_18_1 <- rbind(flu_data_18_1,df1)
}
flu_data_18_1

3.希望可以用apply,尝试多次不行,问题在apply的结果是横向的,我得到的结果本该是44×13的数据框,但用apply得到是2×268。
如有更好的方法请留言,谢谢

猜你喜欢

转载自blog.csdn.net/LeaningR/article/details/109842359