我有一个数据集,其中包含名称,姓名,全名和电话号码等列。 我想创建一个声明,返回名字以“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
答案 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),]