将字符串与cat
和paste
连接在一起有什么区别?
特别是,我有以下问题。
为什么R 不在打印调用"
的结果时使用双引号(cat
)(但在使用{{1}时它使用引号}})?
paste
为什么功能> cat("test")
test
> paste("test")
[1] "test"
和length
功能可用于R中的几乎所有对象,不“工作”mode
?
cat
为什么C风格的转义序列适用于> length(cat("test"))
test[1] 0
> mode(cat("test"))
test[1] "NULL"
,而不适用适用于cat
?
paste
为什么R的回收规则不适用于> cat("1)Line1\n 2)Line2\n 3)Line3")
1)Line1
2)Line2
3)Line3
> paste("1)Line1\n 2)Line2\n 3)Line3")
[1] "1)Line1\n 2)Line2\n 3)Line3"
?
cat
答案 0 :(得分:17)
cat
和paste
将在非常不同的情况下使用。
paste
不是print
当你paste
某事并且没有将其分配给任何内容时,它会成为character
变量print
- 使用print.default
编辑,character
的默认方法{1}},因此引号等。您可以查看print.default
的帮助,了解如何修改输出的内容。
print.default
不会在字符串中评估转义字符,例如\n
。查看此question的答案,了解如何从cat
捕获输出。
引用cat
(?cat
)
连接和打印
描述
输出对象,连接表示。
cat
执行 转化率远低于...
详细信息
cat
对于在用户定义的函数中生成输出很有用。它 将其参数转换为character
向量,将它们连接到一个 单character
个向量,将给定的sep= string(s)
附加到每个NULL
元素然后输出它们。值
无(隐身
cat
)。
length(cat('x'))
不会返回任何内容,它只会输出到控制台或其他连接。
因此,如果您尝试运行mode(cat('x'))
或mode(NULL)
,则表示您正在运行length(NULL)
或NULL
,这将返回character
。
粘贴帮助同样有用且具有描述性
连接字符串
描述
转换为
character
后连接向量。...
值
连接值的
NULL
向量。这将是很长的 如果所有对象都为零,则除非在这种情况下崩溃不是{{1}} 它是一个空字符串。