如何以管道运算符格式编写此 R 表达式?

How can I write this R expression in the pipe operator format?

我正在尝试将此表达式重写为 magrittr 的管道运算符:

print(mean(pull(df, height), na.rm=TRUE))

我的数据集 returns 175.4。

我知道我必须从数据框开始并将其写为 >df%>% 但我对如何将它的内翻外写感到困惑。例如,na.rm=TRUE 应该放在 mean()、pull() 还是 print() 中?

更新:我实际上是通过反复试验弄明白的...

>df%>%
+pull(height)%>%
+mean(na.rm=TRUE)
+print()

returns 175.4 

最好制作一个可重现的示例,使用如下虚拟数据:

height <- seq(1:30)
weight <- seq(1:30)
df <- data.frame(height, weight)

这些管道运算符与大多数 tidyverse(不仅仅是 magrittr)一起工作。你要做的实际上是从 dplyr 出来的。 na.rm=T 是许多汇总变量(如均值、sd)以及用于收集特定数据点(如最小值、最大值等)的某些函数所必需的。这些函数不能很好地处理 NA 值。

df %>% pull(height) %>% mean(na.rm=T) %>% print()

除非您的数据是嵌套的,否则您甚至可能不需要使用 pull

df %>% summarise(mean = mean(height,na.rm=T))

此外,使用 summarize 可以将它们通过管道传输到另一个数据帧中,而不仅仅是打印,并在需要时从数据帧中调用它们。

df %>% summarise(meanHt = mean(height,na.rm=T), sdHt = sd(height,na.rm=T)) -> summary
summary[1]
summary[2]