我如何在R中的dplyr管道函数中进行t检验

时间:2019-12-07 20:10:15

标签: r dplyr statistics

我为此抓狂,我创建了一个新列,并希望根据该新列过滤J.D列。

df %>%
filter(Year >= 1920, Year < 2019) %>%
select(Year,J.D) %>%
mutate(cutoff = ifelse(Year < 1970,1,0)) %>%
t.test(x = df[cutoff == 0][J.D], y = df[cutoff == 1][J.D] )

1 个答案:

答案 0 :(得分:3)

如果我们在t.test中指定了“ x”,“ y”选项,则可以选择在{}中使用wrap并使用.$进行子集化

df %>%
 filter(Year >= 1920, Year < 2019) %>%
 select(Year,J.D) %>%
 mutate(cutoff = (Year < 1970)) %>%
 {t.test(x = .$J.D[!.$cutoff], y = .$J.D[.$cutoff])}

使用可复制的示例

mtcars %>%
     {t.test(x = .$mpg[.$carb == 4], y = .$mpg[.$carb == 2])}