【发布时间】:2016-06-27 00:21:31
【问题描述】:
在 R 中,我试图运行以下代码来查找数据框中几行的方差。多于1个case时方差计算正确,但ID1&ID2只有1个case时明显产生NA。
collated <- aggregate(.~ID1+ID2, interactionData, FUN=var, na.rm=TRUE)
在上面的代码中,有没有办法强制R设置为0而不是NA
(我知道之后我可以按照collated[is.na(collated)] <- 0 的行运行一行代码。但是,我只是想知道是否可以在aggregate 函数中执行所有这些操作。
【问题讨论】:
-
你可以试试
aggregate(.~ID1+ID2, interactionData, FUN=function(x) if(length(x)==1) 0 else var(x, na.rm=TRUE)) -
任何示例输入以便我们确认想法? (我认为聚合的
na.action参数可能是一种解决方法) -
老实说,我认为在单独的一行中用 0 替换
NAs 是我会做的。易于理解和阅读。 -
@joran 谢谢!我已经尝试用 0 回复 NA,它工作得非常好(是的,它非常易读)。我只是想通过看看其他人是否可以指出其他选择来扩展我的知识。
-
@Tensibai - 我花了一些时间试图确定是否可以使用 na.action=etc 但找不到任何可以设置为零的东西。
标签: r missing-data var aggregation