R:使用管道将单个参数传递到函数中的多个位置
R: Using piping to pass a single argument to multiple locations in a function
我正在尝试专门使用管道重写以下代码(使用 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 应该通过管道传递给切片,但我卡住了。感谢任何帮助。
您可以使用 .
在函数的不同位置引用管道数据 在您的情况下:
myDF2 <- babynames %>%
group_by(year) %>%
summarize(totalBirthsPerYear = sum(n)) %>%
slice(seq(1, nrow(.), by = 20))
不确定这是否应该作为一个单独的问题和答案打开,但万一有人来到这里,因为我在寻找 MULTIPLE 的答案标题:
R: 使用管道将单个参数传递到函数中的多个位置
在多个地方使用 Andrew 的回答中的 .
也可以实现这一点。
[示例] 要获取向量的最后一个元素 vec <- c("first", "middle", "last")
我们可以使用此代码。
vec[length(vec)]
使用管道,下面的代码实现了同样的事情:
vec %>% .[length(.)]
希望这对其他人有帮助,因为它对我有帮助(我知道 .
但无法在多个位置使用它)。
我正在尝试专门使用管道重写以下代码(使用 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 应该通过管道传递给切片,但我卡住了。感谢任何帮助。
您可以使用 .
在函数的不同位置引用管道数据 在您的情况下:
myDF2 <- babynames %>%
group_by(year) %>%
summarize(totalBirthsPerYear = sum(n)) %>%
slice(seq(1, nrow(.), by = 20))
不确定这是否应该作为一个单独的问题和答案打开,但万一有人来到这里,因为我在寻找 MULTIPLE 的答案标题: R: 使用管道将单个参数传递到函数中的多个位置
在多个地方使用 Andrew 的回答中的 .
也可以实现这一点。
[示例] 要获取向量的最后一个元素 vec <- c("first", "middle", "last")
我们可以使用此代码。
vec[length(vec)]
使用管道,下面的代码实现了同样的事情:
vec %>% .[length(.)]
希望这对其他人有帮助,因为它对我有帮助(我知道 .
但无法在多个位置使用它)。