0
我有以下的数据帧originalData
如何推出一个多标记数据帧到单个列中的R
ID Y1 Y2 Y3 X1 X2 X3
1 111 TRUE TRUE FALSE 12 junior 45.55
2 112 FALSE FALSE TRUE 15 junior 458.54
3 113 TRUE TRUE FALSE 16 senior 48.79
我希望得到以下结果
ID YCOMBIN X1 X2 X3
1 111 Y1 12 junior 45.55
2 111 Y2 12 junior 45.55
3 112 Y3 15 junior 458.54
4 113 Y1 16 senior 48.79
5 113 Y2 16 senior 48.79
我相信在我的例子更清晰而不是长时间的解释。如果不是。如果adhoc结果的值为TRUE,我想将所有结果(在我的情况Y1和Y2中)放到一个YCOMBIN列中。这样做可能会明显地重复ID和所有预测因子(X1和X2),如果ID在结果上具有超过1的TRUE值。
达到预期结果的最佳方法是什么?
数据来源:
originalData <- structure(list(ID = 111:113, Y1 = c(TRUE, FALSE, TRUE), Y2 = c(TRUE,
FALSE, TRUE), Y3 = c(FALSE, TRUE, FALSE), X1 = c(12L, 15L, 16L
), X2 = structure(c(1L, 1L, 2L), .Label = c("junior", "senior"
), class = "factor"), X3 = c(45.55, 458.54, 48.79)), .Names = c("ID",
"Y1", "Y2", "Y3", "X1", "X2", "X3"), class = "data.frame", row.names = c(NA,
-3L))
您好感谢您的回答,我喜欢的第一个解决方案。但在现实生活中,我的Y很大,名字也不一样。有没有可能使用像收集(键=“YCOMBIN”,价值=“价值”,originalData [,2:4])。我试过了,但它不起作用。 – S12000
在这种情况下,您可以使用'gather_'。 'gather_(key =“YCOMBIN”,value =“value”,names(originalData [,2:4])'。 – Psidom
非常感谢 – S12000