您好,“ R”用户!
请花一些时间帮助我使用有关“数据处理功能”的“ R”软件(初学者),其中我有三(3)个不同的.csv文件,名为“ x2013,x2014,x2015”根据下图Problem,每个年份具有相同的6列,并开始输入命令:
filenames=list.files()
library(plyr)
install.packages("plyr")
import.list=adply(filenames,1,read.csv)
尽管我只是想总结来自这三个来源(csv)的所有调用。任何帮助将不胜感激。谢谢您的协助!
答案 0 :(得分:0)
如果要将read.csv
的结果汇总为一个data.frame
,则可以使用以下方法处理do.call
和rbind
,因为csv文件具有相同的列数。下面的代码从项目主目录中获取所有csv文件(列数应相同),并串联成一个data.frame
:
# simulation of 3 data.frames with 6 columns and 10 rows
df1 <- as.data.frame(matrix(1:(10 * 6), ncol = 6))
df2 <- df1 * 2
df3 <- df1 * 3
write.csv(df1, "X2012.csv")
write.csv(df2, "X2013.csv")
write.csv(df3, "X2014.csv")
# Load all csv files from home directory
filenames <- list.files(".", pattern = "csv$")
import.list<- lapply(filenames, read.csv)
# concatenate list of data.frames into one data.frame
df_res <- do.call(rbind, import.list)
str(df_res)
输出是一个data.frame
,具有6列30行:
'data.frame': 30 obs. of 7 variables:
$ X : int 1 2 3 4 5 6 7 8 9 10 ...
$ V1: int 1 2 3 4 5 6 7 8 9 10 ...
$ V2: int 11 12 13 14 15 16 17 18 19 20 ...
$ V3: int 21 22 23 24 25 26 27 28 29 30 ...
$ V4: int 31 32 33 34 35 36 37 38 39 40 ...
$ V5: int 41 42 43 44 45 46 47 48 49 50 ...
$ V6: int 51 52 53 54 55 56 57 58 59 60 ...