我最近开始自学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
的目标变量值的向量。
感谢您的帮助!