根据符号从列中提取数据

时间:2015-10-21 15:41:22

标签: r awk sed grep

我有一个棘手的问题,我希望有人可以帮助我。我有一个看起来非常标准的输出文件,每列每行有一个值 - 除了一行(下面摘录),每行包含多个条目:

4:103806204-103940896,4:103806204-103940896,4:103822084-103940896,4:103806204-103940896
7:27135712-27139877,7:27135712-27139877
2:209030070-209054773
1:16091458-16113084,1:16090993-16101715,1:16085254-16113084
16:70333061-70367735,16:70323669-70367735,16:70333061-70367735,16:70333061-70367735,16:70328735-70367735,16:70328699-70367735,16:70333061-70367735

将此列拆分为','会很容易,但是我将无法轻易地将其读入R

相反,我希望我可以使用一小段代码来仅选择前两个值,然后将一个列分成两个,删除其余的。所以上面会变成如下:

4  103806204
7  27135712
2  209030070
1  16091458
16  70333061

我以这种方式丢失了一些信息,但它使数据更易于管理。有没有人有什么建议?

1 个答案:

答案 0 :(得分:3)

我们可以使用f中的str_extract_all。我们在library(stringr)中提取数字元素(\\d+),转换'字符'将课程设为list,并使用numerichead rbind元素获取前两个元素。

list