2016-04-13 126 views
-2

我有超过200个CSV文件。每个文件都有150列和1000行。每个文件都按产品名称命名。 每个文件都为数据集提供了一个标志,用于不同列中各种类别的不同项目。其中一列是整个类别中每个项目的总使用量。以下是该数据集的示例:跨多个文件运行功能

Values A B C 
    1  Y 
    2   Y 
    3  Y Y 
    4   Y 

我昨天问了一个问题,并且收到了关于如何获得以下结果的帮助。

 Count Sum 
A  2  4 
B  1  2 
C  2  7 

基本上我想的计数列给我的“Y”对于A,B,和C,和求和列中的数字给我总和从每次的使用列有一个“Y “在列A,B和C

现在我对步骤2有疑问 - 我已将所有文件放入一个文件夹中。我想要做的是使用上述结果,将其应用于每个文件中,然后按文件和类别对答案进行分组。例如

File 1 Count A Sum A Count B Sum B Count C Sum C 
File 2 Count A Sum A Count B Sum B Count C Sum C and so on. 

我该怎么在R中做到这一点?我搜索了论坛,并发现循环有帮助,但我不知道如何将结果合并为一个。

回答

0

如果你分享一个可重现的例子,并且如果它的后续问题链接到原始问题,那么它确实有帮助。

这里有一些有用的信息,你应该让你开始,然后当你有一个特定的绊脚石,我建议你重做这个问题。

Looping over files

filenames = dir(pattern="*01.csv") 
for(i in 1:length(filenames)) 
{ 
    ... 

Merging data

这实在不是一个好主意,但是如果你想要做的是这样,我想你可以尝试:

for (i in 1:10) { 
    df <- rbind(df, data.frame(x = i, y = toString(i))) 
} 

注意在你的代码中,还有另一个问题:

你s如果您希望字符不能转换为因素,请使用stringsAsFactors。使用:df = data.frame(x = numeric(),y = character(),stringsAsFactors = FALSE)

+0

我尝试了遍历文件,但我错过了一些东西。当我“运行”它,它看起来好像在做什么,但我没有看到任何结果。另外,我如何获得每个文件返回的结果? – jalsa