在 SQL 中,如果您使用 IN 查找特定变量(列)的多个值,则可以轻松避免多个 OR 条件。例如 :
SELECT * FROM colors WHERE color in ('Red', 'Blue', 'Green')
我将如何在 R 中做到这一点?我目前不得不这样做:
shortlisted_colors <- subset(colors, color == 'Red' | color == 'Blue' | color == 'Green')
有什么更好的方法?
在 SQL 中,如果您使用 IN 查找特定变量(列)的多个值,则可以轻松避免多个 OR 条件。例如 :
SELECT * FROM colors WHERE color in ('Red', 'Blue', 'Green')
我将如何在 R 中做到这一点?我目前不得不这样做:
shortlisted_colors <- subset(colors, color == 'Red' | color == 'Blue' | color == 'Green')
有什么更好的方法?
shortlisted_colors <- subset(colors, color %in% c('Red', 'Blue', 'Green'))
我想可能很难搜索“in”,但答案是“%in%”。搜索也可能很困难,因为in
它是 R 中的保留字,因为它在for
-loops 的迭代器规范中使用:
subset(colors, color %in% c('Red' ,'Blue','Green') )
看:
?match
?'%in%' # since you need to quote names with special symbols in them
该页面上说明了使用“%”符号将用户定义的中缀函数名称括起来,但随后您将了解@hadley 如何在他的-package 中将该方法提升到更高水平dplyr
。如果您在 SQL 方面有扎实的背景,那么返回查看 dplyr 提供的内容应该会非常令人满意。我知道dplyr
-functions 在许多情况下实际上是 SQL 操作的前端。