r - 管道中的 R print() 强制类型错误
问题描述
当 print() 在管道中使用时,它似乎将 x 强制为 .
seq(1,10,1) %T>% print(x=summary(.)) %>% summary()
给
Min. 1st Qu. Median Mean 3rd Qu. Max.
1 3 6 6 8 10
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 3.25 5.50 5.50 7.75 10.00
我最初想要的是除了 summary() 之外还获得 sd() 并尝试:
seq(1,10,1) %T>% print(x=sd(.)) %>% summary()
但得到:
[1] 3
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 3.25 5.50 5.50 7.75 10.00
>
我尝试了 cat() 和 c() 的变体,但数字 1:10 进入了这些函数的第一个点。
一般的问题是有没有一种方法可以使用管道运算符来显示通过管道移动的内容的多个摘要或函数。我知道我可以使用一个以 sd() 结尾的管道和一个以 summary() 结尾的管道 - 但我的管道的开头比 seq(1,10,1) 复杂得多,我想避免重复或保存成一个对象。
解决方案
将其包裹在括号内
library(magrittr)
seq(1,10,1) %T>%
{print(x=summary(.))} %>%
summary
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 3.25 5.50 5.50 7.75 10.00
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 3.25 5.50 5.50 7.75 10.00
或与第二种情况
seq(1,10,1) %T>% {print(x=sd(.))} %>% summary()
[1] 3.02765
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 3.25 5.50 5.50 7.75 10.00
推荐阅读
- swift - 为什么在 deinit 之后 dispatchqueue.global() 仍然存在
- reactjs - TS2322 - 假 | 元素不可分配给类型 ReactElement。错误不会始终出现在应用程序中?
- python - 如何在 Python 中比 O(n^2) 时间更快地解决 2_sum?
- dialogflow-es - 使用 webhook 挂断 Dialogflow 电话呼叫
- java - Notification.Builder 类不工作,因为它已被弃用
- swift - Swift:如何将从委托接收到的值传递给函数的完成块?
- r - 计算R中两列中每个元素的总数
- javascript - 为什么在javascript中的reduce函数上添加了Infinitity?
- javascript - 优化和重构在连接字符串(Javascript)中交换值的不同样式的按钮组?
- google-cloud-platform - 如何自动启动 AI 平台作业?