我有以下数据:
A B C D E
1 130 288 6 80 57299
2 288 130 6 57299 80
3 288 130 6 57299 80
4 288 130 6 57299 80
5 288 130 6 57299 80
6 288 130 6 57299 80
7 288 130 6 57299 80
8 288 130 6 57299 80
9 288 130 6 57299 80
10 130 288 6 80 57299
我希望获得这些列的唯一组合计数,并将Frequency列附加到现有数据框,而不会消除重复的行。以下是我想要的
A B C D E Freq
1 130 288 6 80 57299 2
2 288 130 6 57299 80 8
3 288 130 6 57299 80 8
4 288 130 6 57299 80 8
5 288 130 6 57299 80 8
6 288 130 6 57299 80 8
7 288 130 6 57299 80 8
8 288 130 6 57299 80 8
9 288 130 6 57299 80 8
10 130 288 6 80 57299 2
尝试df_0 <- count(df, A,B,C,D,E) %>% ungroup()
给我
A B C D E Freq
1 130 288 6 80 57299 2
2 288 130 6 57299 80 8
消除重复。
我该怎么做?
答案 0 :(得分:3)
R dplyr
mutate
dat%>%group_by_(.dots=names(dat))%>%dplyr::mutate(Freq=n())
Python transform
df['Freq']=df.groupby(list(df))['A'].transform('count')
答案 1 :(得分:2)
看起来你想要add_count
:
df_0 <- add_count(df, A,B,C,D,E)
来自?count
的帮助页面:
add_tally()
根据每个现有组中的项目数向表中添加“n”列,而add_count()
也是执行分组的快捷方式。这些函数是tally()
和count()
,因为mutate()
是summarise()
:它们会添加一个额外的列而不是折叠每个组。