一、 简介
cat、print函数都是输出函数
> cat("hello world")
hello world
>> print("hello world")
[1] "hello world"
print的输出有点像列表输出的未命名元素
> alist=list(c(1,2,3,4,5),c('a','b','c','d','e'))
> alist
[[1]]
[1] 1 2 3 4 5
[[2]]
[1] "a" "b" "c" "d" "e"
二、 print与cat函数的差异
//测试返回值的差异
> x<-cat("hello world") //赋值
hello world
> x //cat函数无返回值
NULL
> y<-print("hello world")//赋值
[1] "hello world"
> y //print函数有返回值
[1] "hello world"
cat()函数向控制台输出打印内容,函数没有返回值(=返回值为NULL);而print()函数在控制台输出打印的内容,同时返回输出内容。
有以下两个案例可以帮助理解他们之间的差异:
第一个案例说的是,用print函数对读取的文件(csv)内容进行输出,在进行输出的美化过程(不同输出结果空行)时,把函数内的转义符一同输出了(‘\n’)。
这一个现象还是因为在r里print用不了转义符,print函数直接在控制台输出需要打印的内容,包括字符、制表符,“转义符”,全部按原样输出
> print("hello world\n")
[1] "hello world\n" //直接输出的转义符
> print("hello world\n ")
[1] "hello world\n "//这里是直接输入的 制表符
第二个案例更多是说ifelse(test, yes, no)这个函数的用法(ifelse()函数要求yes和no至少为一个单值向量)。正因为是cat函数没有返回值不具备一个单值向量的条件,所以当ifelse语句逻辑判断test[1]为真,返回yes[1]的值时发现cat函数无返回值所以出错。而改成if() yes else(no)后,执行yes操作就不会出错了。
三、 paste函数
paste函数可以将任意数量的参数组合在一起
在控制台输入help(paste)得到帮助文档
… - 表示要组合的任何数量的参数。
sep - 表示任选的参数之间的分隔符。
collapse - 用于消除两个字符串之间的空间。
具体可以参考这篇文章(如何使用) R语言paste函数