R语言 管道中的过滤功能无法过滤

lsmd5eda  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(143)

我是R的新手,在从管道中获取正确的输出时遇到了一些问题。我的代码是:

(filtered_toothgrowth <- ToothGrowth) %>%   
  filter(dose==0.5) %>% 
  group_by(supp)%>%
  summarize(mean_len = mean(len,na.rm = T), .group="drop")

我已经安装并使用了一个库函数来获取tidyverse。我在第一行使用了圆括号,因为没有圆括号就无法打印到控制台,尽管我看到过一些例子没有使用圆括号,但不知道如何使用。打印结果是一个tibble,而它应该是一个过滤后的表,这让我认为我的过滤器出了问题。
我试过删除括号,但它不会打印到控制台。我试过使用一个排列函数,看看如果过滤器将工作,它这样做,我不知道为什么额外的行使它停止。我得到的结果看起来像这样:

# A tibble: 2 × 3
  supp  mean_len .group
  <fct>    <dbl> <chr> 
1 OJ       13.2  drop  
2 VC        7.98 drop

何时应:

len supp dose
1   4.2   VC  0.5
2   5.2   VC  0.5
3   5.8   VC  0.5
4   6.4   VC  0.5
5   7.0   VC  0.5
6   7.3   VC  0.5
7   8.2   OJ  0.5
8   9.4   OJ  0.5
9   9.7   OJ  0.5
10  9.7   OJ  0.5
11 10.0   VC  0.5
12 10.0   OJ  0.5
13 11.2   VC  0.5
14 11.2   VC  0.5
15 11.5   VC  0.5
16 14.5   OJ  0.5
17 15.2   OJ  0.5
18 16.5   OJ  0.5
19 17.6   OJ  0.5
20 21.5   OJ  0.5
d6kp6zgx

d6kp6zgx1#

这是因为你把它导入summary()函数,如果你删除它,结果就会出来。

> (filtered_toothgrowth <- ToothGrowth) %>%   
+   filter(dose==0.5) %>% 
+   group_by(supp)
# A tibble: 20 × 3
# Groups:   supp [2]
     len supp   dose
   <dbl> <fct> <dbl>
 1   4.2 VC      0.5
 2  11.5 VC      0.5
 3   7.3 VC      0.5
 4   5.8 VC      0.5
 5   6.4 VC      0.5
 6  10   VC      0.5
 7  11.2 VC      0.5
 8  11.2 VC      0.5
 9   5.2 VC      0.5
10   7   VC      0.5
11  15.2 OJ      0.5
12  21.5 OJ      0.5
13  17.6 OJ      0.5
14   9.7 OJ      0.5
15  14.5 OJ      0.5
16  10   OJ      0.5
17   8.2 OJ      0.5
18   9.4 OJ      0.5
19  16.5 OJ      0.5
20   9.7 OJ      0.5
>

相关问题