在SQL中,如果要使用IN查找特定变量(列)的许多值,则可以轻松避免多个OR条件。 例如:
SELECT * FROM colors WHERE color in ('Red', 'Blue', 'Green')
我如何在R中这样做? 我现在必须这样做:
shortlisted_colors <- subset(colors, color == 'Red' | color == 'Blue' | color == 'Green')
什么是更好的方式?
答案 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操作的前端。