我有代码在这里我试图操纵我的文件,以便一列只有1而不是1和0.我有多个文件和多列,但无论过滤一列只获得1和保持其他一切都应该很容易做到。我无法使用d%>%过滤器(CreaseUp> 0)来使用dplyr函数。也许有另一个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")
最终剧本。我不得不在办公室打开.txt文件,将标题和数字之间的空格更改为逗号,然后从文本创建表格。从那里我可以把它放在excel中并从这套装置中拉出我的手段。
setwd("~/OneDrive")
#assuming your working directory is the folder with the CSVs
f=list.files(pattern="*.csv")
library(dplyr)
sink("SeedScan_results1.txt")
for (i in 1:length(f)){
df=assign(f[i], read.csv(f[i]))
df=filter(df, CreaseUp>0)
print(lapply(df, summary))
}
sink(NULL)
答案 0 :(得分:1)
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
,sink
标志可能会有所帮助。