【发布时间】:2021-10-21 21:03:56
【问题描述】:
我不确定以前是否已经回答过此类特定类型的问题。我做了很多研究,但无法得到我想要的。我有一个包含许多列的数据集。其中两列是 Organic = c("Yes","Yes","No",...) 和 StoreBrand = c("No","Yes","No",...)。我想创建具有标题 Organic_Yes、Organic_No、StoreBrand_Yes 和 StoreBrand_No 的列,并用 0 和 1 填充它们。所以我的预期输出将是
| Organic | Organic_Yes | Organic_No | StoreBrand | StoreBrand_Yes | StoreBrand_No |
|---|---|---|---|---|---|
| Yes | 1 | 0 | No | 0 | 1 |
| Yes | 1 | 0 | Yes | 1 | 0 |
| No | 0 | 1 | No | 0 | 1 |
.....等等。我想在 R 中执行此操作。感谢任何帮助
如果新的列标题不是通过蛮力创建的,那就太好了。我希望自动化创建这些列的过程。再次感谢!
【问题讨论】:
-
(1) 寻找带有
model.matrix之类的问题,因为这可能足以完成(大部分)此任务。 (2) 提供预期的输出是好的,请edit您的问题并添加您的起始数据(在这种情况下可以使用相同的格式)。 -
@r2evans 有没有 tidyverse 方法?
-
可能,找到
model.matrix答案,您可能会找到建议 tidyverse 方法的同页答案。它们通常速度较慢和/或代码行数更多,但这是坚持使用 tidyverse 而不是 base-R 的代价。