r - 通过将重复的行扩展到 R 中的列来创建 'dummy variables'

标签 r dplyr

在此先感谢您的帮助。

使用spread有几个问题(从长到宽)重复行 unitethis .

我认为让我的问题与众不同的是需要输出虚拟变量。

我预计会有这样的输入:

df <- data.frame(id = c(1,1,2,3,4), fruit = c("apple","pear","apple","orange","apple"))

和这样的输出:
output <- data.frame(id=c(1,2,3,4), apple = c(1,1,0,1), pear = c(1,0,0,0), orange = c(0,0,1,0))

任何帮助将不胜感激。谢谢。

最佳答案

使用 tidyverse您可以添加新列,然后使用 spread .

library(tidyverse)

df %>% mutate(i = 1) %>% spread(fruit, i, fill = 0)

# result
  id apple orange pear
1  1     1      0    1
2  2     1      0    0
3  3     0      1    0
4  4     1      0    0

关于r - 通过将重复的行扩展到 R 中的列来创建 'dummy variables',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48252753/

相关文章:

r - gganimate如何订购有序的酒吧时间序列?

r - 使用 Ggvis 绘制 LOESS (STL) 分解图

r - 如何在 gsub 替换中使用通配符

替换矩阵中的每一行

r - 在 dplyr 中汇总并为没有值的类别插入 0

r - 以区间为条件的累积和

python - Python中的峰值检测

r - 根据列的子字符串创建行

r - 使用字典标准化重命名

r - Dplyr 编写一个以列名作为输入的函数