r - 将包含不等长度字符串的列拆分为R中的多个列
问题描述
我有一个这样的数据框 -
uniq = data.frame(Freq = c(172,4,50,3),
seq = c("G","G G T G T","G G T T","T G T T A T T"))
我想将第二列分成多列而不重复。以空格分隔的字符串。
我尝试使用下面的代码,但这会将较小字符串的值复制到较长字符串的长度 -
within(uniq, uniq_seq <-data.frame(do.call('rbind', strsplit(as.character(uniq[,2]), ' '))))
谢谢你的帮助!
解决方案
绝对是一个奇怪的要求,但绝对可以使用tidyverse。
library(tidyverse)
df <- uniq %>%
mutate(n = row_number()) %>%
separate_rows(seq, sep = ' ') %>%
group_by(n, Freq) %>%
mutate(n2 = row_number()) %>%
spread(n2, seq) %>%
select(-n)
Freq `1` `2` `3` `4` `5` `6` `7`
<dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 3 T G T T A T T
2 4 G G T G T NA NA
3 50 G G T T NA NA NA
4 172 G NA NA NA NA NA NA
推荐阅读
- go - 为什么 goroutines 用缓冲通道解决死锁问题?
- ios - WidgetKit 不会在最后请求新的时间线
- python - 模块“matplotlib.pyplot”没有属性“yaxis”
- ios - 在 Swift 中切换三个视图控制器
- c++ - 并行编译多个测试文件
- python - 如何匹配模式之前的所有组
- vue.js - Quasar:有没有什么办法可以在模糊删除之前使用 use-input 将输入的值输入到 QSelect 中?
- google-apps-script - 如何更改主题名称 Classroom.Courses.Topics.patch()
- python - 试图找出文件中的哪一行并将其应用于其他内容
- python - 使用熊猫在excel文件中搜索column_names的起始列和行