2014-01-11 92 views
2

我想要選擇數據幀的行,其中列v3中的字符串的長度等於列v4的字符串的長度。 我的數據框 'DF' 的樣子:根據兩列的字符串長度選擇行

v1 v2 v3 v4 
1 456 . C T 
2 462 . C T 
3 497 . C T 
4 499 . GC AC 
5 499 . GC G 
6 499 . GC CC 
7 513 . GCACA GCA 
8 513 . GCACA GCACACA 
9 513 . GCACA ACACA 
10 513 . GCACA GCACACACA 
11 513 . GCACA GCACACACACA 

12 513 . GCACA GACCACA 
13 513 . GCACA G 
14 521 . ACN A 
15 522 . CNN C 

輸出應該是:

v1 v2 v3 v4 
1 456 . C T 
2 462 . C T 
3 497 . C T 
4 499 . GC AC 
9 513 . GCACA ACACA 

我曾嘗試:
new_df = df[nchar(str_sub(df$v3))==nchar(str_sub(df$v4))]

+0

你是密切,只需添加一個逗號來選擇行。 'df [nchar(str_sub(df $ v3))== nchar(str_sub(df $ v4)),]' – agstudy

回答

3

@agstudy得到了最重要的部分。我會補充說,str_sub(從我認爲的stringr包中)在這裏沒有做任何有用的事情。最後,您可以使用subset來避免重複使用df$。所以,你可以這樣做:

df[nchar(df$v3) == nchar(df$v4), ] 

subset(df, nchar(v3) == nchar(v4)) 
+0

@ user3184877:如果這回答了您的問題,請考慮點擊左側的刻度線接受它,謝謝您。 – flodel

相關問題