如何在 R 中对 .csv 文件进行排序

How to sort .csv files in R

我有一个导入到 R 中的 .csv 文件。它包含一个包含位置的列,一些位置会重复,具体取决于该位置被调查的次数。我还有另一列总数。塑料制品。

我想将多次出现的位置的塑料物品数量加在一起,并创建一个单独的列,其中包含总数。塑料和没有的另一列。该位置出现的次数。

我不确定该怎么做,如有任何帮助,我们将不胜感激。

使用dplyr

data %>% 
   group_by(location) %>% 
   mutate(TOTlocation=n(),TOTitems=sum(items)) 

这里有一个基本的解决方案,它做的事情几乎是一样的:

data[c("TOTloc","TOTitem")]<-t(sapply(data$location, function(x)
          c(TOTloc=sum(data$location==x),
            TOTitem=sum(data$items[data$location==x]))))

请注意,在这两种情况下您都不需要对任何内容进行排序 - 在 dplyr 中,您可以使用 group_by 仅对属于确定的组的数据集部分执行每个操作按某栏的内容。在我的基本解决方案中,我使用 sapply 分解位置列表,然后再次为每一行重新计算 TOTloc 和 TOTitem。这可能不是一个非常有效的解决方案。更好的解决方案可能会使用 split,但由于某种原因我无法使其与我制作的数据集一起使用,所以也许其他人可以建议如何最好地做到这一点。