我有一个 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/