0

如何在 R 中打印没有换行符?

> for (i in 1:3)
 +   print(i)
[1] 1
[1] 2
[1] 3

我想得到的是:1 2 3,我可以用 cat

> for( i in 1:3)
+   cat(i," ")
1  2  3  > 

我怎么能用 print 做到这一点?

4

2 回答 2

2

如果你必须这样做print,你可以创建一个integer方法print

> print.integer <- function(x, ...) cat(x, " ") 
> for(i in 1:3) print(i)
1 2 3 > 
于 2012-09-26T01:32:33.413 回答
1

因为您正在使用 print, 这就是 print 对原子向量的工作方式。(的行为print.default

您的选择是使用cat(如您的示例)或使用messageappendLF == FALSE感谢@GSee for the appendLF = FALSE

for( i in 1:3)message(i, appendLF = FALSE)

正如 GSee 所说,如果您坚持使用print,那么您需要为您的 data.type 定义一个打印方法(它将在后台调用catmessage类似)

于 2012-09-26T00:31:19.163 回答