错误'x'必须是数字?

时间:2014-03-10 21:42:30

标签: r histogram numeric

我一直收到一条错误消息,说“x”必须是hist()输出的数字,我怎么能这个?

length= function(nsims,n)
{


    x <- as.numeric(seq(2,nsims))
    t <- lapply(x,abovex) 
    return(t)
  }
hist(length(10,10))

注意:

abovex = function(n) {
    if (n<=0){ return(cat("n must be greater than 0"))}
    else
  step = c(1, -1)
  S = c(0, cumsum(sample(step,n, prob=c(.5, .5), replace=T)))
  above=sum(S[S > 0])
  return(above)

 }

谢谢!

1 个答案:

答案 0 :(得分:1)

您的length函数返回一个列表,而不是数字向量。 length也是一个原始函数,因此您可能需要选择其他名称以避免让自己感到困惑。

如果您希望将结果* s *暗示为矢量,请使用sapply代替lapply

length_sims <- function(nsims,n)
{
  x <- seq(2,nsims)
  t <- sapply(x,abovex) 
  return(t)
}
hist(length_sims(10,10))

您的功能也可以缩短为:

length_sims_short <- function(n) sapply(seq(2, n), abovex)
hist(length_sims_short(10))