作为R两个变量查找NA

问题描述 投票:1回答:2

我想找到NA的数目通过与同时在相同的长度的两个矢量count()函数值:

library(tidyverse)
list1 <-c(NA,NA,3)
list2 <-c(NA,3,4)
count(is.na(list1) & is.na(list2)) # wanna get TRUE 1 FALSE 2 as one only string contains NA values in both variables

它不工作。以下错误存在:

  Error in UseMethod("groups") : 
  no applicable method for 'groups' applied to an object of class "logical"

不过,我学习一个相当不错的书之前进行的。

library(nycflights13) #data-set
flights %>%
count(is.na(arr_delay) & is.na(dep_delay))

在这里它的工作原理。看似一些问题是从某些类型的载体的逻辑一(T或F)的转化率,但我不能弄清楚到底是什么。

r dplyr tidyverse na
2个回答
2
投票

您可以使用table()它建立在is.na(list1) & is.na(list2)每个逻辑值的计数的列联表:

table(is.na(list1) & is.na(list2))
# FALSE  TRUE 
#     2     1 

1
投票

它看起来像两个plyrdplyrcount()功能。该plyr版本基本上说是刚as.data.frame(table(x))dplyr看起来像它需要一个tbl()作为输入的包装。看来dplyr::count()正是您在上面运行。

我只想用table()这里,或显式调用plyr::count()

library(tidyverse)
list1 <-c(NA,NA,3)
list2 <-c(NA,3,4)
as.data.frame(table(is.na(list1) & is.na(list2)))
#>    Var1 Freq
#> 1 FALSE    2
#> 2  TRUE    1
plyr::count(is.na(list1) & is.na(list2))
#>       x freq
#> 1 FALSE    2
#> 2  TRUE    1
dplyr::count(is.na(list1) & is.na(list2))
#> Error in UseMethod("groups"): no applicable method for 'groups' applied to an object of class "logical"

reprex package创建于2019年2月10日(v0.2.1)

© www.soinside.com 2019 - 2024. All rights reserved.