如何解决R长到宽的数据框,只有2列
我正在尝试解决R中这个非常琐碎的问题,但我不太清楚。我有一个只有两列的数据框。
> dput(rrr)
structure(list(row = c(1,2,3,4,1,6,5,7,8,10,9,9),col = c("1","1","2","3","4","5","6","7","8","9","10","10")),row.names = c(1L,2L,4L,6L,16L,17L,19L,21L,31L,32L,34L,36L,46L,47L,48L,50L,53L,55L,57L,58L,59L,60L,63L,65L,70L,71L,72L,75L,77L,82L,83L,84L,86L,89L,91L,93L,94L,95L,96L,99L,109L,110L,111L,115L,125L,126L,127L,129L),class = "data.frame")
对此:
col中与row中的每个值匹配的数字在新列中紧挨着它写入。理想情况下,当数字与示例示例中的数字相同时,我不想在新列中写入数字。 我尝试过使用reshape,但是我迷路了,因为我只有2列,而大多数示例中我看到它们只有3列。 我希望有一个人可以帮助我。 谢谢!
解决方法
我们创建一个序列列并进行数据透视
Object reference not set to an instance of an object
或与library(dplyr)
library(tidyr)
library(data.table)
rrr %>%
mutate(rn = rowid(row)) %>%
pivot_wider(names_from = rn,values_from = col)
# A tibble: 10 x 8
# row `1` `2` `3` `4` `5` `6` `7`
# <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
# 1 1 1 2 3 4 <NA> <NA> <NA>
# 2 2 1 2 4 6 <NA> <NA> <NA>
# 3 3 1 3 4 5 <NA> <NA> <NA>
# 4 4 1 2 3 4 5 6 7
# ...
data.table
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。