我有一个文本文件中的数据,其中包含几列,我想处理数据的方式,我不应该失去任何信息,有些可能包括两个或两个以上的信息分隔特殊字符,如“+”加号,我想把这个组合的信息在不同的行在同一列,例如我粘贴数据如下
我的 Dataframe 如下所示
df <- data.frame(G1=c("GH13_22+CBM4", "GH109+PL7+GH9","GT57", "AA3","",""),
G2=c("GH13_22","","GT57+GH15","AA3", "GT41","PL+PL2"),
G3=c("GH13", "GH1O9","", "CBM34+GH13+CBM48", "GT41","GH16+CBM4+CBM54+CBM32"))
G1 G2 G3
1 GH13_22+CBM4 GH13_22 GH13
2 GH109+PL7+GH9 GH1O9
3 GT57 GT57+GH15
4 AA3 AA3 CBM34+GH13+CBM48
5 GT41 GT41
6 PL+PL2 GH16+CBM4+CBM54+CBM32
预期结果应如下所示
一个二个一个一个
感谢任何帮助谢谢
3条答案
按热度按时间0pizxfdo1#
base
解决方案:i86rm4rw2#
separate_rows()
已被separate_longer_delim()
取代,因为它与其他独立函数的API更加一致。被取代的函数不会消失,但只会收到关键错误修复。https://tidyr.tidyverse.org/reference/separate_rows.html1.我们以长格式提供数据
1.使用
dplyr
中的na_if
将空白替换为NA1.使用这行代码
summarise(cur_data()[seq(max(id)), ])
,我们将每个组的id扩展到最大值。1.最后,我们将准备好的数据框架向后旋转:
qf9go6mv3#
另一个选项,灵感来自this post中的@Peter M