问题在于,在下一个示例中,如果我使用通过过滤数据集创建的列表,则查询不会给我任何结果,而如果我创建具有相同结果但以字符串形式编写的列表,则该查询会起作用。
我有这个足球队的数据集。我应该参加南方队(那不勒斯,卡利亚里,克罗托内和巴勒莫)的比赛。我尝试了两种方式:
south_teams<- football_ratings %>%
filter(region=="South") %>%
select(HomeTeam) %>%
as.list()
# "Napoli" "Cagliari" "Crotone" "Palermo"
south_teams<- c("Napoli","Cagliari","Crotone","Palermo")
如果我用第二个列表过滤数据集,则会得到一个140行的表。如果我尝试对第一个列表执行相同操作,则会获得一个包含0行的表。
如果我用第二个列表过滤数据集,则会得到一个140行的表。如果我尝试对第一个列表执行相同操作,则会获得一个包含0行的表。
football_matches %>%
filter(HomeTeam %in% south_teams | AwayTeam %in% south_teams)
我该如何解决?
答案 0 :(得分:0)
假装这是您的第一个列表
south_teams <- tibble(HomeTeam = c("Napoli","Cagliari","Crotone","Palermo")) %>%
as.list()
如果我们查看结果,就会看到
south_teams
# $`HomeTeam`
# [1] "Napoli" "Cagliari" "Crotone" "Palermo"
因此您需要south_teams$HomeTeam
,而不是south_teams
例如:
"Napoli" %in% south_teams
# [1] FALSE
"Napoli" %in% south_teams$HomeTeam
# [1] TRUE