在此先感谢您的帮助。
使用spread
有几个问题(从长到宽)重复行 unite
如 this .
我认为让我的问题与众不同的是需要输出虚拟变量。
我预计会有这样的输入:
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/