根据字符数删除行

mfk*_*534 1 grep r sed dataset

我想知道如何根据两行的总和从数据集中删除包含超过一定数量字符的行.

例如,在以下数据中:

2   rs121065    0   17696224    T   C
2   rs1860485   0   17696230    T   C
2   rs237147    0   17696256    C   CGAGGCAG
2   rs1909633   0   17696365    A   G
2   rs574724    0   17696368    T   C
Run Code Online (Sandbox Code Playgroud)

我想删除第三行.问题是一系列字母是可变的,因此在其他地方,数据可能如下所示:

2   rs113308    0   17683654    CCTTT   C
Run Code Online (Sandbox Code Playgroud)

或这个:

2   rs103371    0   17667279    TG  T
Run Code Online (Sandbox Code Playgroud)

所以 - 基本上,需要删除最后两列中包含2个以上字符的任何行,理想情况下我的数据集将如下所示:

2   rs121065    0   17696224    T   C
2   rs1860485   0   17696230    T   C
2   rs1909633   0   17696365    A   G
2   rs574724    0   17696368    T   C
Run Code Online (Sandbox Code Playgroud)

任何建议都非常感谢!

Ben*_*ker 6

基于R的解决方案.

让我们说焦点列被称为seq1seq2.

然后

mydata <- subset(mydata,nchar(seq1)+nchar(seq2)==2)
Run Code Online (Sandbox Code Playgroud)

或者如果你真的想使用最后两列,

nc <- ncol(mydata)
mydata <- mydata[nchar(mydata[,ncol-1])+nchar(mydata[,ncol])==2,]
Run Code Online (Sandbox Code Playgroud)

但我发现前者更容易阅读.