[英]How to remove NA's from a lazy query in R
我需要有关此数据库的帮助https://www.kaggle.com/datasets/hugomathien/soccer我想使用表 player_attributes 的列 preferred_foot数据库,并使用:group_by 和 dplyr 的摘要。当我在 r 中运行它时:
con <- DBI::dbConnect(RSQLite::SQLite(), "data/database.sqlite")
library(tidyverse)
library(DBI)
player_attributes<-tbl(con,"Player_Attributes")
Table_preferred_foot<- player_attributes %>%
group_by(preferred_foot) %>%
summarize(number_of_players=count(preferred_foot))
head(Table_preferred_foot)
我得到右脚和左脚球员的数量,我也得到 NA 的数量是 0。但是如果我运行:
player_attributes %>%
group_by(preferred_foot) %>%
count()
我得到右脚和左脚球员的数量(与以前相同的数字),但我得到 NA 的数量是 836,这是 NA 的真实数量。 如何通过使用 summarize 和 group_by 获得正确答案?
还有一个直接的 function 来检查惰性查询的变量中是否有任何 NA,并从惰性查询的变量中删除 NA,就像常规数据帧一样? (像 na.omit() 这样的基本功能不起作用)
您可以对每个片段 1 进行group_by
和summarise
。 Count
将每个片段 2 合并为一行。您可以filter
掉每个片段 3 的 NA。
library(tidyverse)
con <- DBI::dbConnect(RSQLite::SQLite(), "database.sqlite")
tbl(con, "Player_Attributes") %>%
group_by(preferred_foot) %>%
summarise(n = n())
tbl(con, "Player_Attributes") %>%
count(preferred_foot)
tbl(con, "Player_Attributes") %>%
filter(!is.na(preferred_foot)) %>%
count(preferred_foot)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.