r - 如何在R语言中单行打印
问题描述
我在 R 中做了一些 HandOn:
toppers <- sample(80:100, 5)
s <- ifelse(toppers>90,"best class", "needs improvement")
我需要在一行中打印 s 。我能怎么做?
实际的:
[1] "best class" "needs improvement" "needs improvement"
[4] "needs improvement" "needs improvement"
预期的:
[1] "best class" "needs improvement" "needs improvement" "needs improvement" "needs improvement"
解决方案
您的“预期”输出不明确,因此我将给出各种答案以涵盖所有基础。
首先,如果您只对在交互式会话中获得确切的格式感兴趣,您可以简单地告诉 R 使用更大的线宽,这样它就不会换行:
> options(width=9999)
调用之后,默认的 read-eval-print 循环打印的对象将显示在一行上,直到它们达到 9999 的长度:
> s
[1] "needs improvement" "needs improvement" "needs improvement" "best class" "needs improvement"
另一种方法是,如果您只是想将列表打印到控制台标准输出而不进行任何格式化,则使用cat()
. cat()
直接打印到控制台或文件,无需太多转换。
> cat(s)
needs improvement needs improvement needs improvement best class needs improvement
您会注意到删除引号。如果要在输出中的每个字符串周围保留引号,我们可以使用deparse()
. 我们还将使用sapply()
分别对每个字符串进行解析,否则它会c()
在整个事情周围放置一个不需要的东西:
> cat(sapply(s, function(word) deparse(word)), collapse=' ')
"needs improvement" "needs improvement" "needs improvement" "best class" "needs improvement"
以上仍然直接打印到控制台标准输出。如果要将组合字符串保存在变量中,我们可以使用paste0()
代替cat()
:
> x <- paste0(sapply(s, function(word) deparse(word)), collapse=' ')
> cat(x)
"needs improvement" "needs improvement" "needs improvement" "best class" "needs improvement"
推荐阅读
- angular - IONIC 4 离子菜单未显示在离子菜单按钮单击上
- java - 部署 jar 文件时出现问题:错误依赖项
- java - Azure Functions with java - 如何获取函数中写入的日志?
- phaser-framework - 无法向场景添加补间
- docker - 在 TensorFlow 基础映像(1.13.2-gpu-py3)上安装 pip 包不起作用
- sql - 将 varchar 数据类型转换为日期时间错误。日期格式问题
- python - 如何从 gRPC 客户端获取状态代码 OK 响应
- android - 如何修复“Http2CallStream 缺少或权限不足”
- php - 在 ubuntu 18.10.1 中安装 wordpress 后出错
- angular - 如何覆盖 Angular > vendor.js 中定义的事件处理程序?