在R中显示顶部值和所有其他值的总和

在R中显示顶部值和所有其他值的总和,r,sqldf,R,Sqldf,在sqldf中使用“按总描述排序”后,我的结果如下 NAME TOTAL A 100 E 85 D 75 C 55 B 30 F 25 G 20 I 15 H 10 我想显示前5名(在本例中),其余的合计为“其他人”: 像这样: NAME TOTAL A 100 E 85 D 75 C 55 B 30 Others 70 是否有一种方法

在sqldf中使用“按总描述排序”后,我的结果如下

NAME  TOTAL
 A     100
 E     85
 D     75
 C     55
 B     30
 F     25
 G     20
 I     15
 H     10
我想显示前5名(在本例中),其余的合计为“其他人”: 像这样:

NAME   TOTAL
A       100
E       85
D       75
C       55
B       30
Others  70

是否有一种方法可以使用R进行排序?

假设您的数据已经排序,一种方法如下。它相当冗长,所以我很想看到其他解决方案方法

df = read.table(text='NAME  TOTAL
A     100
E     85
D     75
C     55
B     30
F     25
G     20
I     15
H     10',header=T,stringsAsFactors=F)

library(dplyr)
df %>% 
  mutate(NAME=ifelse(NAME %in% head(NAME,5),NAME,'other')) %>% 
  mutate(NAME=factor(NAME,levels=unique(NAME))) %>%
  group_by(NAME) %>% 
  summarize(TOTAL=sum(TOTAL))
输出:

# A tibble: 6 x 2
  NAME   TOTAL
  <fctr> <int>
1 A        100
2 E         85
3 D         75
4 C         55
5 B         30
6 other     70
#一个tible:6x2
姓名总数
1 A 100
2 E 85
三维75
4 C 55
5 B 30
6其他70
希望这有帮助