R将分类数据转换为其他变量的虚拟集
R Convert categorical data to dummy set by other variable
我有这个数据集,我放了一张真实数据的截图,而不是代码什么的。
抱歉搞砸了,我是 R 的新手
enter image description here
然后,我想将数据更改为“13 Source”分类数据的虚拟集,但必须按"HH No" 进行汇总。哪个看起来像这样
enter image description here
我尝试通过 varhandle 使用 to.dummy,model.matrix 但最终得到了混乱的数据集。
谁能帮我解决这个问题?
提前一百万致谢
有多种方法可以从因子中生成虚拟变量 - 这是创建摘要存在的一种方法 table。
假设 df
是您的数据框。您可以使用 xtabs
作为开始,这将从您的 2 列创建一个频率 table。
通过比较您的值是否 > 0,如果 > 0,您将得到 TRUE
,否则将得到 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))
我有这个数据集,我放了一张真实数据的截图,而不是代码什么的。 抱歉搞砸了,我是 R 的新手 enter image description here
然后,我想将数据更改为“13 Source”分类数据的虚拟集,但必须按"HH No" 进行汇总。哪个看起来像这样 enter image description here 我尝试通过 varhandle 使用 to.dummy,model.matrix 但最终得到了混乱的数据集。 谁能帮我解决这个问题? 提前一百万致谢
有多种方法可以从因子中生成虚拟变量 - 这是创建摘要存在的一种方法 table。
假设 df
是您的数据框。您可以使用 xtabs
作为开始,这将从您的 2 列创建一个频率 table。
通过比较您的值是否 > 0,如果 > 0,您将得到 TRUE
,否则将得到 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))