R 对包含相同信息的行求和并删除其余行
我有一个特定的R数据帧问题,我还没有找到解决方案 我有一个具有相同信息(重复或Id1/Id2组合)的数据帧,如下所示:R 对包含相同信息的行求和并删除其余行,r,R,我有一个特定的R数据帧问题,我还没有找到解决方案 我有一个具有相同信息(重复或Id1/Id2组合)的数据帧,如下所示: df_test <- data.frame(Id1= c("1", "1", "2", "3", "11", "5", "6", "7"), Id2= c("4", "4", "6", "11", "3", "6", "2", "9" )) df_test Id1 Id2 1 1 4 2 1 4 3
df_test <- data.frame(Id1= c("1", "1", "2", "3", "11", "5", "6", "7"),
Id2= c("4", "4", "6", "11", "3", "6", "2", "9" ))
df_test
Id1 Id2
1 1 4
2 1 4
3 2 6
4 3 11
5 11 3
6 5 6
7 6 2
8 7 9
我尝试了aggregate
和summary
,但在那里我还没有找到解决方案。另一个想法是使用igraph
包,将其视为edgelist
然后edge.attr.comb=list(weight=“sum”)
提前谢谢
#dataframe for solution:
df_sol <- data.frame(Id1= c("1", "2", "3", "5", "7"),
Id2= c("4", "6", "11", "6", "9" ),
Sum =c("2", "2", "2", "1", "1"))
解决方案的数据帧:
df_sol您可以使用此选项,将第1行排序,顺序与您的输出不同,因为在您的
df_test
中,数据类型都是字符。(将其更改为数字,您将获得所需的结果)
A=data.frame(t(应用(df_测试,1,排序)))
A=dplyr::计数(A,X1,X2)
姓名(A)=c('Id1','Id2','Sum')
#一个tibble:5x3
Id1 Id2和
1 1 4 2
2 11 3 2
3 2 6 2
4 5 6 1
5 7 9 1
智能解决方案,甚至可以轻松扩展到更多列!相关:(1)或。(2) .
#dataframe for solution:
df_sol <- data.frame(Id1= c("1", "2", "3", "5", "7"),
Id2= c("4", "6", "11", "6", "9" ),
Sum =c("2", "2", "2", "1", "1"))
A=data.frame(t(apply(df_test, 1, sort)))
A=dplyr::count(A,X1,X2)
names(A)=c('Id1','Id2','Sum')
# A tibble: 5 x 3
Id1 Id2 Sum
<fctr> <fctr> <int>
1 1 4 2
2 11 3 2
3 2 6 2
4 5 6 1
5 7 9 1