存在NAs时,将dplyr筛选器转换为基本R
我在dplyr中有一个正在工作的存在NAs时,将dplyr筛选器转换为基本R,r,dplyr,R,Dplyr,我在dplyr中有一个正在工作的filter语句,我无法将其转换为base R library(dplyr) x <- data.frame( v1 = c("USA", "Canada", "Mexico"), v2 = c(NA, 1:5) ) x %>% filter(v1=="Canada",v2 %in% 3:5) x[x$v1=="Canada" && x$v2 %in% 3:5,] 库(dplyr) x%过滤器(v1==“加拿大
filter
语句,我无法将其转换为base R
library(dplyr)
x <- data.frame(
v1 = c("USA", "Canada", "Mexico"),
v2 = c(NA, 1:5)
)
x %>% filter(v1=="Canada",v2 %in% 3:5)
x[x$v1=="Canada" && x$v2 %in% 3:5,]
库(dplyr)
x%过滤器(v1==“加拿大”,v2%位于%3:5)
x[x$v1==“加拿大”&&x$v2%在%3:5中,]
如有任何帮助,将不胜感激。请举例说明:
library(dplyr)
x <- data.frame(
v1 = c("USA", "Canada", "Mexico"),
v2 = c(NA, 1:5)
)
# filter
x %>% filter(v1=="Canada",v2 %in% 3:5)
v1 v2
1 Canada 4
# your approach
x[x$v1=="Canada" && x$v2 %in% 3:5,]
v1 v2
<0 rows> (or 0-length row.names)
# second & removed
x[x$v1=="Canada" & x$v2 %in% 3:5,]
v1 v2
5 Canada 4
子集
位于基本R中,其功能类似于dplyr
中的filter
。子集是否足够,或者出于某种原因是否需要括号符号
> x <- data.frame(
+ v1 = c("USA", "Canada", "Mexico"),
+ v2 = c(NA, 1:5)
+ )
通过基本R/子集
:
> subset(x, v1 == 'Canada' & v2 %in% 3:5)
v1 v2
5 Canada 4
添加
&!is.na(x$v2)
Man,我认为&&
是一个短圆圈,“本质上意味着x&&y
意味着如果x为假,甚至不用计算y。类似的x | | y
意味着如果x为真,甚至不要同时计算y,但显然我错了。谢谢,是的!但你不想在这里这样。您需要TRUE
和FALSE
语句的向量,每个观察值一个。如果在R
需要向量时只提供一个FALSE
语句,R
将回收该向量。因此,对于每一行,您都会说FALSE
,从而得到上述结果(无行)。
> x <- data.frame(
+ v1 = c("USA", "Canada", "Mexico"),
+ v2 = c(NA, 1:5)
+ )
> x %>% filter(v1=="Canada",v2 %in% 3:5)
v1 v2
1 Canada 4
> subset(x, v1 == 'Canada' & v2 %in% 3:5)
v1 v2
5 Canada 4