0

我有这个数据集,我放的是真实数据的截图,而不是代码什么的。抱歉搞砸了,我是 R 的新手 在此处 输入图像描述

然后,我想将数据更改为“13 Source”分类数据的虚拟集,但必须用“HH No”进行汇总。看起来像这样 在此处输入图像描述 我已尝试通过 varhandle、model.matrix 使用 to.dummy,但最终得到了混乱的数据集。任何人都可以帮助我如何处理这个问题吗?提前一百万谢谢

4

1 回答 1

0

有多种方法可以根据因素制作虚拟变量 - 这是创建汇总存在表的一种方法。

假设df是您的数据框。您可以使用xtabs开始,它将从您的 2 列创建一个频率表。

通过比较来查看您的值是否 > 0,TRUE如果 > 0,您将得到,FALSE否则。在末尾加 0 将成为TRUE数字 1 和FALSE数字 0。

(xtabs(~ HH_No + Source, df) > 0) + 0

输出

     Source
HH_No Deep_well Rainwater
    1         1         1
    3         1         1
    4         0         1

数据

df <- structure(list(HH_No = c(1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 
3, 3, 4, 4), Source = structure(c(2L, 2L, 2L, 2L, 1L, 1L, 1L, 
2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L), .Label = c("Deep_well", 
"Rainwater"), class = "factor")), class = "data.frame", row.names = c(NA, 
-16L))
于 2020-05-01T01:37:24.737 回答