2017-10-08 50 views
1

我有一個包含名稱,第二個名稱,全名和電話號碼列的數據集。 我想創建一個語句,返回帶有小寫字母「P」開頭的第二個人的電話號碼。在R studio中創建條件語句

我創造出了字母

df <- data.frame(L=letters[1:26]) 
    > class(df) 
    [1] "data.frame" 
    > class(phonebook) 
    [1] "data.frame" 
    > class(phonebook$name) 
    [1] "factor" 
    > class(phonebook$secondname) 
    [1] "factor" 
    > class(phonebook$fullname) 
    [1] "factor" 
    > class(phonebook$TelpNum) 
    [1] "numeric" 
    EXAMPLE DATA 
    name   secondname  fullname  TelpNum 

    Sage   Kafka   Sage Kafka 234234234 

    CUP   Ripley   CUP Ripley 12312325 

它返回一行一data.frame開始與 「聖人」:

Sage   Kafka   Sage Kafka 234234234 

回答

1

你可以使用grep,與模式^[A-O] ,意思是「以A..O範圍內的字母開頭」:

phonebook[grep('^[A-O]', phonebook$secondname),] 

要添加更多條件,例如是TelpNum不是NA, 使用grepl代替:

phonebook[grepl('^[A-O]', phonebook$secondname) & !is.na(phonebook$TelpNum),] 
+0

我也試圖找到一個沒有改變您的statment有一個電話號碼的姓名「>電話簿[ grep('[NA]',電話簿$ TelpNum),]'它返回[1]名稱secondname全名TelpNum <0 rows>(或0長度row.names),但值集有NA值是什麼問題? – 1010111100011

+0

由於列data.type? – 1010111100011

+0

@xxx我向我的回答 – janos