我正在使用类似于以下内容的数据集:
data<- tibble('year' = c(1850,1860,1870), 'TallestPerson' = c('Abe Lincoln', 'Abe
Lincoln', 'Paul Bunyon'), 'President'=c('Taylor', 'Lincoln', 'Grant'))
以表格形式:
year TallestPerson President
1 1850 Abe Lincoln Taylor
2 1860 Abe Lincoln Lincoln
3 1870 Paul Bunyon Grant
由于总统的名字属于最高人物的名字,我正在寻找一种选择表格第二行的方法。
我尝试了
tall_presidents <- data %>% filter(data$President %in% data$TallestPerson)
由于(我假设)TallestPerson和President不完全匹配,因此返回空的小标题。如何选择最高者姓名中包含总统姓名的行?
如果这是SQL,我要查找的语句将是
SELECT *
FROM data
WHERE TallestPerson LIKE "%"+President+"%"
答案 0 :(得分:0)
我们可以使用str_detect
library(tidyverse)
data %>%
filter(str_detect(TallestPerson, President))
# A tibble: 1 x 3
# year TallestPerson President
# <dbl> <chr> <chr>
#1 1860 Abe Lincoln Lincoln
注意:在tidyverse
函数中,我们无需指定data$
即可获取列的值。