尝试向功能添加换行符,但无法使其正常工作

时间:2018-09-07 01:46:30

标签: r

我是R的新手,所以请多多包涵!尝试做一个大学班的项目。

这是我的功能:

function(x) {
    y = seq(from = 1, to = x, by = 1)
    f = cat(paste("This is Banana", y, sep="\n"))
    return(f)
}

通过一些搜索,我学会了添加catsep="\n"来插入换行符。但是它将它们插入错误的位置:

当我运行函数(例如x=3)时,它会执行此操作,并将数字跳过到下一行

This is Banana
1 This is Banana
2 This is Banana
3 NULL

我希望它看起来像这样:

This is Banana 1
This is Banana 2
This is Banana 3

感谢任何意见,

2 个答案:

答案 0 :(得分:3)

摆脱f并移动paste的结束括号(您也可以简化seq):

myfun <- function(x) {
    y <- seq(x)
    cat(paste("This is Banana", y), sep="\n")
}

myfun(3)
This is banana 1 
This is banana 2 
This is banana 3 

答案 1 :(得分:2)

Dan Y已经回答了您的问题,我只想提及您的代码为何给出不同的输出-这是因为Rect CalcWorkArea(Rect scrn, Rect tbar) { Rect work; work.X = (tbar.X + tbar.W) % scrn.W; work.Y = (tbar.Y + tbar.H) % scrn.H; work.W = work.X + scrn.W - (tbar.W % scrn.W); work.H = work.Y + scrn.H - (tbar.H % scrn.H); return work; } 函数使用paste参数来确定用于分隔每个字符串的字符串给定的参数,而不仅仅是在给定的所有参数的末尾添加一次。

所以sep实际上是在paste("This is Banana", y, sep="\n")This is Banana之间插入换行符,这就是为什么数字出现在下一行而不是当前行的原因。