在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=“宽”)