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