如何在 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
,但由于某种原因我无法使其与我制作的数据集一起使用,所以也许其他人可以建议如何最好地做到这一点。
我有一个导入到 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
,但由于某种原因我无法使其与我制作的数据集一起使用,所以也许其他人可以建议如何最好地做到这一点。