R中SQL的IN关键字相当于什么?

时间:2014-07-17 19:15:44

标签: sql r language-comparisons

在SQL中,如果要使用IN查找特定变量(列)的许多值,则可以轻松避免多个OR条件。 例如:

SELECT * FROM colors WHERE color in ('Red', 'Blue', 'Green')

我如何在R中这样做? 我现在必须这样做:

shortlisted_colors <- subset(colors, color == 'Red' | color == 'Blue' | color == 'Green')

什么是更好的方式?

2 个答案:

答案 0 :(得分:9)

shortlisted_colors <- subset(colors, color %in% c('Red', 'Blue', 'Green'))

答案 1 :(得分:2)

我想在&#34;&#34;中搜索可能很困难。但答案是&#34;%in%&#34;。搜索也可能很困难,因为in是R中的保留字,因为它在for中的迭代器规范中使用 - 循环:

subset(colors, color %in% c('Red' ,'Blue','Green') )

请参阅:

?match
?'%in%'   # since you need to quote names with special symbols in them

在该页面上说明使用&#34;%&#34; -signs括起用户定义的中缀函数名称,但是您将了解@hadley如何将该方法引入到该页面中。他的dplyr包中的更高级别。如果你在SQL中有扎实的背景,那么循环回来看看dplyr提供的应该是非常令人满意的。我知道dplyr - 函数实际上是许多实例中SQL操作的前端。