在R中合并数据帧中的记录

在R中合并数据帧中的记录,r,dataframe,merge,R,Dataframe,Merge,我有以下示例数据集: data.frame(SEX=c("M","F","M","F"),COMPLAINT=c("headache","headache", "dizziness", "dizziness"), reports=c(5,4,9,12), users = c(1250,3460,2500,1850)) SEX COMPLAINT reports users 1 M headache 5 1250 2 F headache

我有以下示例数据集:

data.frame(SEX=c("M","F","M","F"),COMPLAINT=c("headache","headache", "dizziness", "dizziness"),
           reports=c(5,4,9,12), users = c(1250,3460,2500,1850))

  SEX COMPLAINT reports users
1   M  headache       5  1250
2   F  headache       4  3460
3   M dizziness       9  2500
4   F dizziness      12  1850
我的问题是如何合并第1行和第2行以及第3行和第4行,以便我的数据帧如下所示:

 COMPLAINT reports_male reports_female users_male users_female
1  headache            5              4       1250         3460
2 dizziness            9             12       2500         1850

谁有一个快速的解决方案,我可以用它来处理(大得多的)数据集?

我们可以使用
data.table
中的
dcast
,它可以容纳多个
value.var
列,在大数据集上非常有效

library(data.table)
dcast(setDT(df1), COMPLAINT ~ SEX, value.var = c("reports", "users"))
#    COMPLAINT reports_F reports_M users_F users_M
#1: dizziness        12         9    1850    2500
#2:  headache         4         5    3460    1250

我们可以使用
data.table
中的
dcast
,它可以接受多个
value.var
列,在大型数据集上非常有效

library(data.table)
dcast(setDT(df1), COMPLAINT ~ SEX, value.var = c("reports", "users"))
#    COMPLAINT reports_F reports_M users_F users_M
#1: dizziness        12         9    1850    2500
#2:  headache         4         5    3460    1250
如中所示,我们可以使用
库(重塑2)
然后

重塑(df,idvar=“投诉”,timevar=“性”,direction=“宽”)

如中所示,我们可以使用
库(重塑2)
然后

重塑(df,idvar=“投诉”,timevar=“性”,direction=“宽”)