猫和印刷有什么区别?

2024-06-22

cat and print两者似乎都在 R 中提供了“打印”功能。

x <- 'Hello world!\n'
cat(x)
# Hello world!
print(x)
# [1] "Hello world!\n"

我的印象是cat最类似于典型的“打印”功能。我什么时候使用cat,我什么时候使用print?


cat仅对原子类型(逻辑、整数、实数、复数、字符)和名称有效。这意味着你不能打电话cat在非空列表或任何类型的对象上。在实践中,它只是将参数转换为字符并连接,这样你就可以想到类似的东西as.character() %>% paste().

print是一个通用函数,因此您可以为某个 S3 类定义特定的实现。

> foo <- "foo"
> print(foo)
[1] "foo"
> attributes(foo)$class <- "foo"
> print(foo)
[1] "foo"
attr(,"class")
[1] "foo"
> print.foo <- function(x) print("This is foo")
> print(foo)
[1] "This is foo"

之间的另一个区别cat并打印返回值。cat无形中回归NULL while print返回其参数。此属性为print与管道结合使用时特别有用:

coefs <- lm(Sepal.Width ~  Petal.Length, iris) %>%
         print() %>%
         coefficients()

大多数时候你想要的是print. cat对于将字符串写入文件之类的事情很有用:

sink("foobar.txt")
cat('"foo"\n')
cat('"bar"')
sink()

As pointed https://stackoverflow.com/questions/31843662/what-is-the-difference-between-cat-and-print/31843744#comment51610245_31843744 by baptiste https://stackoverflow.com/users/471093/baptiste您可以使用cat将输出直接重定向到文件。所以上面的等价物是这样的:

cat('"foo"', '"bar"', file="foobar.txt", sep="\n")

如果你想增量地写行,你应该使用append争论:

cat('"foo"', file="foobar.txt", append=TRUE)
cat('"bar"', file="foobar.txt", append=TRUE)

相比sink就我的口味而言,这种方法过于冗长,但它仍然是一种选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

猫和印刷有什么区别? 的相关文章

  • 在 ggplot2 中隐藏单个几何图例

    我将相同的变量 颜色 映射到两个不同几何图形中的颜色 我希望它们要么出现在单独的图例中 DHJ 和 EFI 要么最好完全跳过第二个图例 对于 E F 和 I 目前 R 将两者混合在一起 并给我一个图例 其中按字母顺序列出了 DEFHIJ 所
  • 如何为 R 中接下来的 2 个单元格复制相同的列值[重复]

    这个问题在这里已经有答案了 我正在尝试使用 R 为列中接下来的 2 个单元格复制相同的列值 我有以下形式的数据框 Time World Cate Data 1994 Africa A 12 1994 B 17 1994 C 22 1994
  • 根据值绘制具有条件颜色的折线图

    我想绘制折线图 根据值 它应该改变它的颜色 我发现的是 plot sin seq from 1 to 10 by 0 1 type p col ifelse sin seq from 1 to 10 by 0 1 gt 0 5 red ye
  • R 在列中按分隔符分割字符串

    我有一个包含几行的文件 例如 A B C awer ttp net Code 554 abcd ttp net Code 747 asdf ttp net Part 554 xyz ttp net Part 747 我想使用 R 仅拆分表的
  • 如何在 R 中计算带有变量的表达式?

    我希望这段代码能够设置plt等于 10 gt var plt gt eval paste0 var lt 10 1 plt lt 10 但相反 它返回一个字符串 I tried eval as expression paste0 var l
  • 升级到 Mac OSX 10.10 后,从 R 控制台运行系统命令无法找到已安装的程序

    我一直有一些奇怪的问题 https stackoverflow com questions 26477679 texi2dvi error when compiling tex files using rstudio and knitr s
  • R 代码编程:在堆叠排序表上先向下填充缺失列值,然后向上填充

    我有一个包含 3 列的数据框 但第三列有一些缺失值 需要用以下逻辑填充 期望的结果是第三列 部分 上没有缺失值 要填充它 我们必须找到第一个 周 其中为该特定 项目 第一列 填充了 部分 值 并且然后通过向下复制 part 来填充它 直到找
  • 在 R 中将数组转换为矩阵

    我有一个数组 其中包括名为 comp 的项目 是 否 的两个熟练度变量 theta0 theta1 这需要转换为一个矩阵 有什么方法可以转换像底部那样的矩阵吗 我的数组如下所示 gt priCPT i6 comp Yes theta1 th
  • 如何引用基于 data.frame 中的变量的列表?

    我有一张简单的桌子emp id and job code 我想返回正确的payout基于job code 我已经用嵌套的 ifelse 来解决这个问题 但是如果我有更多怎么办job code s library dplyr set seed
  • 在 R 中创建多维 NetCDF

    我正在尝试使用 R 包创建多维 NetCDF 文件ncdf http cran r project org web packages ncdf index html 我正在对一组 1500 个点进行气候日常观测 每个点的观测数量约为 182
  • R 中的波形符(~) 运算符

    根据 R 文档 运算符在公式中用于分隔公式的右侧和左侧 右侧是自变量 左侧是因变量 我了解 lm 包中何时使用 然而以下是什么意思呢 x 1 右边是1 什么意思 可以是除 1 之外的任何其他数字吗 From lm 拟合线性模型时 y x 1
  • 使用 sf 与多多边形几何体进行分组(使用 R)

    我有一个放在一起的自定义形状文件 当我一次绘制所有内容时 效果很好 但我想按某些变量进行分组来绘制特定形状的区域 例如 county region sales washoe 1 5 carson city 1 10 clark 2 15 h
  • TabsetPanel 未在 Shiny 中填充整个页面

    我正在尝试创建一个使用 tabsetPanel 的闪亮应用程序 但是当我创建选项卡时 应用程序中的内容不再填充窗口的整个空间 并在输出的右侧和下方留下大的白色间隙 下面是一个非常基本的例子 如果没有选项卡 应用程序可以完美地作为一个流畅的页
  • 按成员列表的长度对列表列表进行排序

    我有来自作为 S4 对象类型的包 apcluster 的输出 其中一个成员是确定找到的每个簇的成员的列表列表 我想按长度 最大的簇 对该列表进行排序 我的代码现在看起来像 ap result lt apcluster args cluste
  • 如何将两个矩阵的列与所有组合相乘

    我喜欢将具有相同行的两个矩阵的列的所有可能组合相乘 这意味着两个矩阵 例如a 3x3 and b 3x4 将生成带有元素的 3x4 矩阵a i j a k j i and k表示从 1 到 3 的行 并且j代表从 1 到 4 的列 我创建了
  • 使用 ggplot2 将抖动应用于箱线图中的异常值数据

    您知道如何将抖动仅应用于箱线图的异常值数据吗 这是代码 ggplot data a aes x y a V8 geom boxplot outlier size 0 5 geom point data a aes x y a V8 54 c
  • 风玫瑰与 ggplot (R)?

    我正在寻找使用 ggplot2 来创建的良好 R 代码 或包 风玫瑰 http en wikipedia org wiki Wind rose显示风的频率 强度和方向 我对 ggplot2 特别感兴趣 因为以这种方式构建绘图使我有机会利用其
  • 在 ggplot2 直方图中的图例下插入表格

    有没有办法让 grid arrange 充当 split screen 我想在图例的正下方安排一张桌子 create histogram my hist lt ggplot diamonds aes clarity fill cut geo
  • R:使用字符串作为参数来改变 dplyr 中的动词

    我正在构建一个闪亮的应用程序 它需要允许用户定义新的绘图变量 具体来说 我想允许用户定义要在 mutate 动词中使用的表达式 服务器接收文本形式的表达式 我想知道如何让 mutate 在 dplyr 0 7 中执行它 我可以使用 muta
  • ggplot2 每个美学的多个尺度/图例,重新审视[重复]

    这个问题在这里已经有答案了 我有一个例子 我想使用 ggplot 突出显示序列比对的几个属性 我正在使用 geom tile 并希望为两个分数属性提供两组不同颜色的图块 我只能想象一个 我意识到每种审美的一个尺度的限制 以及其背后的逻辑 h

随机推荐