r - 自动将 R 因子扩展为每个因子水平的 1/0 指标变量的集合

标签 r

我有一个 R 数据框,其中包含一个我想要“扩展”的因子,以便对于每个因子级别,新数据框中都有一个关联的列,其中包含 1/0 指示符。例如,假设我有:

df.original <-data.frame(eggs = c("foo", "foo", "bar", "bar"), ham = c(1,2,3,4))

我想要:

df.desired  <- data.frame(foo = c(1,1,0,0), bar=c(0,0,1,1), ham=c(1,2,3,4))

因为对于某些需要完整数字数据框的分析(例如,主成分分析),我认为这个功能可能是内置的。编写一个函数来执行此操作应该不会太难,但我可以预见与列名相关的一些挑战,如果已经存在某些东西,我宁愿使用它。

最佳答案

使用model.matrix函数:

model.matrix( ~ Species - 1, data=iris )

关于r - 自动将 R 因子扩展为每个因子水平的 1/0 指标变量的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5048638/

相关文章:

r - 尝试安装 rgeos R 时找不到 -lgeos

r - 如何使用 Rmarkdown 在 Word 文档中重复包含 R 代码?

在具有多个匹配项的 data.table 中滚动连接

r - 如何制作一个列联表,其中一个变量根据给定的休息时间进行分类

r - 在 R : month abbreviated "dd-mmm-YYYY" 中将字符串转换为日期

r - 在 r 中使用 ggplot2 创建月份大小的 bin

在 R 中重组团队数据

r - 使用 R 选择循环中的第 n 个字符

r - 在 s4 泛型方法中混合 ... 与正式参数

r - 如何裁剪位于多边形内的数据点并绘制