我试图专门使用管道来重写以下代码(使用babynames包中的babynames数据:
library(babynames)
library(dplyr)
myDF <- babynames %>%
group_by(year) %>%
summarise(totalBirthsPerYear = sum(n))
slice(myDF, seq(1, nrow(myDF), by = 20))
Run Code Online (Sandbox Code Playgroud)
我得到的最接近的是这段代码(不工作):
myDF <- babyNames %>%
group_by(year) %>%
summarise(totalBirthsPerYear = sum(n)) %>%
slice( XXX, seq(1, nrow(XXX), by = 20))
Run Code Online (Sandbox Code Playgroud)
其中XXX意味着通过管道传递切片,但我被卡住了.任何帮助表示赞赏.
您可以使用以下.情况在函数中的不同位置引用管道数据:
myDF2 <- babynames %>%
group_by(year) %>%
summarize(totalBirthsPerYear = sum(n)) %>%
slice(seq(1, nrow(.), by = 20))
Run Code Online (Sandbox Code Playgroud)
不确定这是否应该作为单独的问题和答案打开,但万一有人到达这里,因为我确实在标题中寻找MULTIPLE的答案: R:使用管道将单个参数传递到函数中的多个位置
.在多个地方使用来自安德鲁的答案也可以实现这一点。
[示例]要获取向量的最后一个元素,vec <- c("first", "middle", "last")
我们可以使用此代码。
vec[length(vec)]
Run Code Online (Sandbox Code Playgroud)
使用管道,以下代码实现了相同的目的:
vec %>% .[length(.)]
Run Code Online (Sandbox Code Playgroud)
希望这对其他人有帮助,因为它会帮助我(我知道.但无法在多个位置使用它)。