在同一行回答标题

时间:2019-04-27 01:01:06

标签: r

编写以下功能:

printVecInfo <- function(a)
{
 medianA <- data.frame("median")
  medianA <- median(a)
 return
 cat("Median:",median(medianA),"Mean:", mean(medianA),sep="\n")
}

当我运行该函数时,它会显示这样的答案,并在标题下显示答案:

Median:
4
Mean:
4

我如何使其显示在标题旁边的答案旁边?

Median: 4
Mean: 4

2 个答案:

答案 0 :(得分:1)

每个\n创建一个新行,现在您的函数正在使用sep = "\n"参数在每段之间添加一行。

这应该有效,只有一个回报:

printVecInfo <- function(a)
{
 cat("Median:",median(a),"\nMean:", mean(a))
}

答案 1 :(得分:0)

尽管您的代码在语法上可能是正确的,但从语义的角度来看并没有多大意义。

以下是一些评论/建议:

  1. medianA <- data.frame("median")创建一个data.frame,并且在单个列中只有一个character条目"median"。我不知道这是什么意思。
  2. 然后,您将这个变量重新定义(使先前的定义过时),作为(我假设是)median <- median(a)向量numeric的{​​{1}}作为函数参数传递;这将返回一个标量,即单个数字。
  3. 在最后一行代码中,您计算​​出amedian(medianA),因为mean(medianA)是标量(不是矢量),所以没有意义;为了明确起见:您在这里计算的是medianAmedian(4),这两种情况都将平凡地返回mean(4)
  4. 最后,我鼓励您使用适当的缩进/间距,并熟悉如何在R中编写自定义函数;例如,R函数可以使用隐式返回值作为该函数的最后求值表达式;或者您可以使用 explicit 返回参数作为4。无论哪种方式,return(expression)之后的内容都不会得到评估。

因此,如果您想定义一个打印(并返回)return(...)向量的medianmean的函数,您可以编写类似

的内容
numeric