2017-07-25 32 views
1

,我有以下数据:获得R中数据帧列的独特组合的计数,而从数据消除重复列

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 

我想获得这些列的独特组合的数量,并附加频率列到现有的数据框,而不会消除重复的行。下面是我想

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 

通过消除重复。

我怎么去呢?

+1

Python的标签?为什么? –

+0

也在Python中尝试,因为我没有在python中的相应代码,所以删除了标签。谢谢 – Sneha

+0

所以,你这次也需要python吗?大声笑,我会添加python解决方案。 – Wen

回答

3

[R dplyrmutate

dat%>%group_by_(.dots=names(dat))%>%dplyr::mutate(Freq=n()) 

的Python transform

df['Freq']=df.groupby(list(df))['A'].transform('count') 
+0

我不知道R但这看起来很花哨。 +1 –

+0

@cᴏʟᴅsᴘᴇᴇᴅ谢谢〜 – Wen

+0

@Sneha,作为您在添加R和Python解决方案之前所问的问题 – Wen

2

它看起来像你想add_count

df_0 <- add_count(df, A,B,C,D,E) 

从帮助页面?count

add_tally()增加了一列“N”基于项目的每个现有中的数字表组,而add_count()是一个快捷方式,也可以进行分组。这些功能是tally()count(),因为mutate()summarise():它们添加了一个附加列而不是折叠每个组。

+0

这两个解决方案都很完美。谢谢温和格雷戈尔。不幸的是,我只能接受一个答案。 – Sneha