【问题标题】:Counting the negative values in vectors with random numbers用随机数计算向量中的负值
【发布时间】:2019-10-29 16:14:32
【问题描述】:

我正在尝试定义一个函数,计算两个向量的小于 0 的值 x=rnorm(100) 和 y=rnorm(500)。

定义另一个函数来计算 x 和 y 的值分别小于 0 的比例。

我想比较计算 理论比例为0.5。

myf <- function (x)
{
  a <- rnorm(100)
  b <- x[x < 0]
  return(a)
}

myf (x)

【问题讨论】:

  • 我不清楚你在问什么。你能详细说明一下吗?
  • 为什么返回 a 而不是 b?
  • 很难理解你想要什么,但这可能有助于你的第二部分(按你想要的比例)-mean(rnorm(100) &lt; 0)
  • 你好@MM,我正在尝试编写一个函数来计算向量 x=rnorm(100) 和 y=rnorm(500) 的小于零的值。

标签: r


【解决方案1】:
set.seed(92)
x <- rnorm(100)
y <- rnorm(500)

countnegatives <- function(a,b){

  counta <- sum(a<0); countb <- sum(b<0)

return(
  paste(deparse(substitute(a)), "has", counta, "negative numbers",
        "and",
        deparse(substitute(b)), "has", countb, "negative numbers")
)}

countnegatives(x,y)
#> [1] "x has 44 negative numbers and y has 267 negative numbers"

或者你可以简单地在你的函数中返回c(counta, countb)。如果你想得到比例,你可以把counta/length(a)b分开,然后在你的函数中返回。

【讨论】:

  • @LAWONGDamian 我添加了解释。取而代之的是returning 我是pasting 的所有文本一起返回,例如counta/length(a)。您可以通过 concatenating 返回两个值,如下所示:c(counta/length(a), countb/length(b)。这给出了这个随机种子的比例是 0.44 对于x 和 ~0.53 对于 y
猜你喜欢
  • 1970-01-01
  • 2020-12-16
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
  • 2020-12-24
  • 1970-01-01
  • 2019-05-25
  • 2019-03-18
相关资源
最近更新 更多