strings %>% strsplit(-6ren">
gpt4 book ai didi

r - 如何调用使用 magrittr 管道创建的对象的元素?

转载 作者:行者123 更新时间:2023-12-02 17:12:00 26 4
gpt4 key购买 nike

我们使用 magrittr piper 运算符对向量进行操作。

strings <- "a b c"
strings %>% strsplit(" ") # Here we get a list


> strings %>% strsplit(" ")
[[1]]
[1] "a" "b" "c"

但假设我们只想获取此列表的单个元素。这将要求我们(获取第一个元素的示例):

(strings %>% strsplit(" "))[[1]][1] # Notice the braces around the expression.. 

现在回答我的问题:有没有一种方法可以在不需要将整个表达式放在大括号中的情况下使用管道运算符?我认为,如果我们不必将其写入临时变量或使用方括号,而是使用某种特殊的管道运算符,它会更加透明。

还有其他方法吗?

最佳答案

或者还有:

字符串 %>% strsplit("") %>% { .[[1]][1] }

这与

相同

strings %>% strsplit("") %>% .[[1]] %>% .[1]

比较时间:

library(purrr)
library(dplyr)
microbenchmark::microbenchmark(
(strings %>% strsplit(" ") %>% unlist %>% first)
,(strings %>% strsplit(" ") %>% { .[[1]][1] })
,(strings %>% strsplit(" ") %>% map_chr(1))
)
# Unit: microseconds
# expr min lq mean median uq max neval
# (strings %>% strsplit(" ") %>% unlist %>% first) 280.270 288.363 301.9581 295.4685 305.1395 442.511 100
# (strings %>% strsplit(" ") %>% { .[[1]][1] }) 211.980 219.875 229.4866 226.3875 235.6640 298.429 100
# (strings %>% strsplit(" ") %>% map_chr(1)) 682.123 693.965 747.1690 710.1495 752.3875 2578.091 100

关于r - 如何调用使用 magrittr 管道创建的对象的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48661356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com