我有一個數據幀,看起來像這樣之間的空間只有行:過濾器[R數據幀以包括兩個字符串
v1 <- c('abies balsamifera','some trees','pizza','i like tacos','pinus taeda')
v2 <- c(1,2,3,4,5)
data <- data.frame(v1,v2)
v1 v2
1 abies balsamifera 1
2 some trees 2
3 pizza 3
4 i like tacos 4
5 pinus taeda 5
我想子集數據框,只有包括行,其中在v1
的字符串有兩個單詞用空格隔開。我想要排除只包含一個單詞的行或包含三個單詞的其他行。所得到的數據幀是這樣的:
v1 v2
1 abies balsamifera 1
2 some trees 2
5 pinus taeda 5
您可以簡化代碼,使其更具可讀性。首先,不是'if'語句,而是直接賦值:'booleans [i] < - length(tmp)== 2'。其次,沒有理由將'booleans'向量綁定到數據框,只需在函數的最後一個'return'行中刪除'res $'。然後,您不需要通過分配NULL來刪除該列。第三,作爲一個單獨的問題,您可以創建'booleans'向量,使其具有正確的長度,因爲您知道它將成長爲'數據'元素。 –
@MatthewLundberg感謝代碼審查 - 我很快就寫了這段代碼來獲得答案(我正在使用它來嘗試成爲一個更好的程序員),但是我後來看到它,並注意到很多不必要的操作。我會用你的建議。我非常感謝你的時間! –