我的R函数计算条件均值有什么问题?

时间:2016-04-25 00:23:02

标签: r

我最近开始自学R,并决定尝试创建一个函数来计算数据框中变量的平均值,条件是同一数据帧中的另一个变量等于某个值。这是我的代码:

conditional.mean <- function( df, tv, cvar, cval ) {
  col1 <- df$tv
  col2 <- df$svar
  subdf <- data.frame( col1, col2 )

  tv.cond <- subdf[ which(col2==cval), 1 ]

  x <- mean( tv.cond )

  return( x )
}

df是数据框,tv是要计算其条件均值的目标变量,cvar是条件中使用的变量,cval是要检查cvar的值。

当我运行上面的代码时,该函数会输出NA并发出以下警告:&#34; In mean.default(tv.cond) : argument is not numeric or logical: returning NA。&#34;我不明白为什么会这样说,因为tv.cond应该是cvar = cval的目标变量值的向量。

感谢您的帮助!

0 个答案:

没有答案