为了账号安全,请及时绑定邮箱和手机立即绑定

自动将R因子扩展为每个因子级别的1/0指标变量的集合

自动将R因子扩展为每个因子级别的1/0指标变量的集合

肥皂起泡泡 2019-11-20 11:13:38
自动将R因子扩展为每个因子级别的1/0指标变量的集合我有一个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))因为对于某些需要完全数字数据框的分析(例如,主成分分析),我认为这个特性可能是内置的。写一个函数来做这个不应该太难,但我可以预见一些与列名相关的挑战,如果已存在某些内容,我宁愿使用它。
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

使用model.matrix功能:

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


查看完整回答
反对 回复 2019-11-21
?
莫回无

TA贡献1865条经验 获得超7个赞

使用reshape2包的快速方法:


require(reshape2)


> dcast(df.original, ham ~ eggs, length)


Using ham as value column: use value_var to override.

  ham bar foo

1   1   0   1

2   2   0   1

3   3   1   0

4   4   1   0

请注意,这会精确生成所需的列名称。



查看完整回答
反对 回复 2019-11-21
  • 3 回答
  • 0 关注
  • 373 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信