Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:使用管道将单个参数传递到函数中的多个位置_R_Piping_Magrittr - Fatal编程技术网

R:使用管道将单个参数传递到函数中的多个位置

R:使用管道将单个参数传递到函数中的多个位置,r,piping,magrittr,R,Piping,Magrittr,我试图专门使用管道重写以下代码(使用babynames包中的babynames数据): library(babynames) library(dplyr) myDF <- babynames %>% group_by(year) %>% summarise(totalBirthsPerYear = sum(n)) slice(myDF, seq(1, nrow(myDF), by = 20)) library(babynames) 图书馆(dplyr) 多年筹资框架%

我试图专门使用管道重写以下代码(使用babynames包中的babynames数据):

library(babynames)
library(dplyr)

myDF <- babynames %>% 
group_by(year) %>% 
summarise(totalBirthsPerYear = sum(n))

slice(myDF, seq(1, nrow(myDF), by = 20))
library(babynames)
图书馆(dplyr)
多年筹资框架%
组别(年份)%>%
总结(总出生人数=总和(n))
切片(myDF,序号(1,nrow(myDF),by=20))
我得到的最接近的代码是(不工作):

myDF%
组别(年份)%>%
总结(totalBirthsPerYear=总和(n))%>%
切片(XXX,序号(1,nrow(XXX),by=20))

其中XXX将通过管道传递到切片,但我被卡住了。非常感谢您的帮助。

您可以在函数中的不同位置引用管道数据,方法是在您的情况下使用

myDF2 <- babynames %>%
    group_by(year) %>%
    summarize(totalBirthsPerYear = sum(n)) %>%
    slice(seq(1, nrow(.), by = 20))
myDF2%
组别(年份)%>%
汇总(totalBirthsPerYear=sum(n))%>%
切片(序号(1,nrow(.),by=20))
不确定是否应将其作为单独的问题和答案打开,但如果有人像我一样来到这里,寻找标题中多个问题的答案: R:使用管道将单个参数传递到函数中的多个位置

在多个地方使用Andrew答案中的
也可以实现这一点


[示例]要获取向量
vec的最后一个元素,最后一行应该是
slice(seq(1,nrow(.),by=20))
。您不需要第一个
XXX
,因为
摘要
的输出已经自动输送到
切片
。第二个
XXX
取代,其中
是用于指输送到函数中的数据帧的“代词”。非常感谢!
myDF2 <- babynames %>%
    group_by(year) %>%
    summarize(totalBirthsPerYear = sum(n)) %>%
    slice(seq(1, nrow(.), by = 20))
vec[length(vec)]
vec %>% .[length(.)]