用2个因素(rstudio)将复杂DF从长改宽
我有一个数据框,看起来很像这个:用2个因素(rstudio)将复杂DF从长改宽,r,R,我有一个数据框,看起来很像这个: CLIENT_CODE TIME DATE question1 question2 question3 question4 ....ETC AA1234 1 12/1 1 3 4 TEXT11 BB1234 1 12/2 0 8 2 TEXT9 CC1234 1 13/1
CLIENT_CODE TIME DATE question1 question2 question3 question4 ....ETC
AA1234 1 12/1 1 3 4 TEXT11
BB1234 1 12/2 0 8 2 TEXT9
CC1234 1 13/1 NA 3 8 TEXT8
AA1234 2 15/2 6 7 9 TEXT7
BB1234 3 17/3 2 3 7 TEXT6
CC1234 3 21/4 2 5 4 TEXT5
BB1234 2 12/6 9 3 2 TEXT3
CC1234 2 02/7 2 2 1 TEXT2
现在,我正在努力解决这个问题(几个小时前,我一直在努力解决这个问题)
就是将因子(c_代码)作为我的行(将几个c_代码合并成一行,在它们匹配的情况下),并且
将时间因素列成一列,以便每次都有问题1、问题2、问题3的答案。。。等
大致如下:
CLIENT_CODE DATE_1 q1_1 q2_1 q3_1 ...ETC| DATE_2 q1_2 q2_2 q3_2 ...ETC|
AA1234 12/1 1 3 4 TEXT11 | 15/2 5 4 2 |
BB1234 12/2 0 8 2 TEXT9 | 12/6 2 3 4 |
CC1234 13/1 NA 3 8 TEXT8 | 02/7 3 3 2 |
这似乎可以通过两个步骤轻松完成,尽管我可能缺少一个更简单的方法。为了稍微简化这个问题,我删除了日期列,但如果完全必要,可以在重塑数据帧后重新添加。首先熔化框架:
intermediate <- melt(test, id.vars = c("CLIENT_CODE", "TIME"))
intermediate omg那你:)嘿,Omri,谢谢你的回答。有一个问题,而不是我在新表中只得到0/1的值。可能是因为我在使用dcast函数时收到警告吗?“聚合函数缺失:默认为长度”如果有关系,我的“值”列包含数字、文本和日期,在“melt”函数之后是“as.chatacter”类。
final <- dcast(intermediate, CLIENT_CODE ~ variable + TIME, value.var = "value")