在此先感谢您的帮助。
spread在重复行上使用(从长到宽)有几个问题,unite例如this。
我认为让我的问题与众不同的是需要输出虚拟变量。
我预计会有这样的输入:
df <- data.frame(id = c(1,1,2,3,4), fruit = c("apple","pear","apple","orange","apple"))
Run Code Online (Sandbox Code Playgroud)
和这样的输出:
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))
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。谢谢。
使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1289 次 |
| 最近记录: |