微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R长到宽的数据框,只有2列

如何解决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")

我希望从此出发:

enter image description here

对此:

enter image description here

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 举报,一经查实,本站将立刻删除。