如何在多个条件下对 R 中的数据帧进行子集化?
How to subset a dataframe in R with multiple conditions?
需要在预安装的数据集 gapminder 中查找 2004 年后俄罗斯的平均生育率。
library(dplyr)
library(dslabs)
df1 <- data.frame(gapminder)
a <- df1@year >= 2004
df1[df1$fertility %in% c("Russia", a), ]
此代码 returns 仅限 NA。我尝试了不同的变体并观看了一些讲座,但无法弄清楚,非常感谢您的帮助。
您可以使用 $
(而不是 @
)引用该列,'Russia'
也出现在 country
列中,但您正在检查 fertility
.
尝试:
library(dplyr)
df1 %>%
filter(country == 'Russia', year >= 2004) %>%
summarise(avg_fertility = mean(fertility, na.rm = TRUE))
# avg_fertility
#1 1.493333
不使用 filter
df1 %>%
summarise(avg_fertility = mean(fertility[country == 'Russia' &
year >= 2004], na.rm = TRUE))
在基数 R 中:
mean(subset(df1, country == 'Russia' & year >= 2004)$fertility, na.rm = TRUE)
需要在预安装的数据集 gapminder 中查找 2004 年后俄罗斯的平均生育率。
library(dplyr)
library(dslabs)
df1 <- data.frame(gapminder)
a <- df1@year >= 2004
df1[df1$fertility %in% c("Russia", a), ]
此代码 returns 仅限 NA。我尝试了不同的变体并观看了一些讲座,但无法弄清楚,非常感谢您的帮助。
您可以使用 $
(而不是 @
)引用该列,'Russia'
也出现在 country
列中,但您正在检查 fertility
.
尝试:
library(dplyr)
df1 %>%
filter(country == 'Russia', year >= 2004) %>%
summarise(avg_fertility = mean(fertility, na.rm = TRUE))
# avg_fertility
#1 1.493333
不使用 filter
df1 %>%
summarise(avg_fertility = mean(fertility[country == 'Russia' &
year >= 2004], na.rm = TRUE))
在基数 R 中:
mean(subset(df1, country == 'Russia' & year >= 2004)$fertility, na.rm = TRUE)