R 导入多个csv文件,操作(过滤列并进行摘要)并将结果导出到一个txt文件中

R 导入多个csv文件,操作(过滤列并进行摘要)并将结果导出到一个txt文件中,r,csv,R,Csv,我这里有代码,我正在尝试管理我的文件,以便一列仅为1,而不是1和0。我有多个文件和多列,但不管怎样,过滤一列只得到1,保留所有其他内容都应该很容易。我无法使dplyr函数与d%>%filterCreaseUp>0一起工作。也许lapply还有另一个命令可以用?其他一切都可以。我可以将文件汇总并输出到一个文件中。我很快就能搞定了。请帮忙 setwd("~/OneDrive/School/R/R Workspace/2016_Coda-Brundage/cb") #assuming your wor

我这里有代码,我正在尝试管理我的文件,以便一列仅为1,而不是1和0。我有多个文件和多列,但不管怎样,过滤一列只得到1,保留所有其他内容都应该很容易。我无法使dplyr函数与d%>%filterCreaseUp>0一起工作。也许lapply还有另一个命令可以用?其他一切都可以。我可以将文件汇总并输出到一个文件中。我很快就能搞定了。请帮忙

setwd("~/OneDrive/School/R/R Workspace/2016_Coda-Brundage/cb")
#assuming your working directory is the folder with the CSVs
f = list.files(pattern="*.csv")
for (i in 1:length(f)) assign(f[i], read.csv(f[i]))
d<-lapply(f, read.csv)
f.1<-d %>% 
    filter(CreaseUp>0)
w<-lapply(f.1, summary)
write.table(w, file = "SeedScan_results1.csv", sep = ",", col.names = NA,
        qmethod = "double")
d似乎是数据帧列表,而不是数据帧,因此dplyr无法处理它。还有,那个循环现在在做什么?为什么不把读取和可能的过滤放在循环中呢

alldfs = NULL
for (i in f){
    df = read.csv(i)
    df = filter(df, CreaseUp>0)
    alldfs = bind_rows(alldfs, df)
}
# print summary etc.
编辑-如果要从循环中打印摘要:

sink("SeedScan_results1.txt")
for (i in f){
    df = read.csv(i)
    df = filter(df, CreaseUp>0)
    print(lapply(df, summary))
}
sink(NULL)

如果要在循环中移动接收器,append标志可能会很有用。

因此,这与过滤我的折痕有关,因此它们大于0。但是,因为我不想将文件绑定在一起。当我做总结的时候,我会让拉普莱做的。所以我alldfs=bind_rowsalldfs,df。结果,它只输出了我的第一个csv文件,并对折痕进行了排序,但没有对我的所有csv进行汇总,并像以前一样将它们输出到同一个文件中。我如何让它为所有csv做,因为它只为第一个csv做。setwd~/OneDrive/School/R/R Workspace/2016_Coda-Brundage/cb假设您的工作目录是带有CSVs f=list的文件夹。filespattern=*.csv alldfs=NULL,用于f{df=read.csvi df=filterdf,creasup>0 alldfs=bind_rowsalldfs,df lapplydf,summary}write.tabledf,file=SeedScan_results1.csv,sep=,col.names=NA,qmethod=double最初我想导入csv文件,分别对每个文件执行折痕>0,然后在csv文件中单独导出它们。重新导入它们并执行lappy以获取摘要并导出为一个csv文件。@在lapplydf中,摘要输出没有分配给任何内容,并且在循环中禁止打印到控制台。您需要打印lapplydf、summary或将其存储在某处。我编辑了这篇文章,看看这是否是你想要的。是的,它终于成功了。最后一件事,它在控制台中打印,但我想将输出写入csv文件。我尝试在for循环中使用write.tablesumTable,file=SeedScan_results1.csv,sep=,col.names=F,qmethod=double,append=T。这输出了一个错误:provideDimnamesx中的错误,sep=sep,base=base:“dimnames”应用于非数组。如何将控制台中的内容打印到csv文件?
sink("SeedScan_results1.txt")
for (i in f){
    df = read.csv(i)
    df = filter(df, CreaseUp>0)
    print(lapply(df, summary))
}
sink(NULL)