以下是我的数据示例:
Type <- c('A','A','A','A','B','B','C','D')
Name <- c('DK', 'MO', 'OM', 'LSO', 'GOP', 'ADG','BFC','TMD')
Value <- c(3,2,5,3,6,5,7,6)
Dat <- data.frame(Type, Name,Value)
Dat
Type Name Value
1 A DK 3
2 A MO 2
3 A OM 5
4 A LSO 3
5 B GOP 6
6 B ADG 5
7 C BFC 7
8 D TMD 6
我想要得到的是Type = A时的值的总和。在这种情况下,它是13
。我通过应用dplyr
找到了一些类似的例子,但我不需要类型和名称。请帮助,谢谢!
答案 0 :(得分:1)
使用dplyr,您可以使用group_by对每种类型进行分组,或者如果您只想要类型A,则可以过滤Type == A。然后在两种情况下,您将按值的总和进行汇总。我在下面展示了两个例子。
library(dplyr)
Type <- c('A','A','A','A','B','B','C','D')
Name <- c('DK', 'MO', 'OM', 'LSO', 'GOP', 'ADG','BFC','TMD')
Value <- c(3,2,5,3,6,5,7,6)
Dat <- data.frame(Type, Name,Value)
Dat
res1 <- Dat %>%
group_by(Type) %>%
summarize(sum(Value))
res1
# Source: local data frame [4 x 2]
#
# Type sum(Value)
# (fctr) (dbl)
#1 A 13
#2 B 11
#3 C 7
#4 D 6
res2 <- Dat %>%
filter(Type == "A") %>%
summarize(sum(Value))
res2
# sum(Value)
#1 13