我有一个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从API中提取数据

收件箱摘要表布局在第一列上显示子类别

如何计算新变量中的通货inflating 率?

从R中的地址提取街道名称

有没有一种方法可以在子包上使用‘library()’中的‘exclub’参数?

根据固定值范围在tible中添加新行

使用ggplot将平滑线添加到条形图

如何使用stat_extract_all正确提取我的目标值?

有没有一种方法可以从函数中创建一个值的列表,然后将这些值变成R中的直方图?我一直觉得不行

如何编辑ggplot的图例字使用自定义对象(gtable)?'

二维样条,严格以一个参数递增

如何在R中描绘#符号?

R:从geom_ol()中删除轮廓并导出为pdf

使用rvest从多个页面抓取时避免404错误

当我们有多个反斜杠和/特殊字符时使用Gsubing

R -在先前group_by级别汇总时获取最大大小子组的计数

如何使这些react 表对象相互独立?

如何使用前缀作为匹配来连接数据帧?

R+reprex:在呈现R标记文件时创建可重现的示例

注释不会绘制在所有ggplot2面上