在R studio

时间:2017-10-08 09:02:05

标签: r grep

我有一个数据集,其中包含名称,姓名,全名和电话号码等列。 我想创建一个声明,返回名字以“P”开头的第二个名字的人的电话号码。

我创建了一个包含字母<{p>的data.frame

   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

必须返回以“Sage”开头的行:

Sage           Kafka          Sage Kafka   234234234

1 个答案:

答案 0 :(得分:1)

你可以使用grep,模式为^[A-O],意思是&#34;以A..O&#34;范围内的字母开头:

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

要添加更多条件,例如TelpNum不是NA, 改为使用grepl

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