1

我有两个大数据框,一个带有模拟数据,另一个带有观察数据。列代表我要比较的点,行代表小时。

dim(SIM)
[1]  400 1000 

dim(OBS)
[1]  400 1000

400 是小时数,1000 是我要比较的点数。观察数据框也包含很多 NA 值。因此,当我尝试在两个数据框上应用该函数时:

BIAS <- function(x, y) {
    x <- na.omit(x)
    y <- na.omit(y)
    res <- mean(x - y)
}

NA 值从观察数据帧中删除,最后是空的,因为每行至少有一个 NA。

我该如何重新制定它,以便我可以执行操作并最终得到一个新的数据框:

length(VALUEBIAS)
[1]  1000

包含所有点的偏差?一种解决方案可能是旋转列,将它们合并在一起,删除 NA 值并执行统计,但我想应该有一种更优雅的方式来改变函数。

谢谢。

4

1 回答 1

0

如果没有可重现的示例,我只能建议您尝试设置na.rm参数:

试试这个例如:

 BIAS <- function(x, y) { mean(x-y,na.rm=TRUE)}

但有了更多信息,我们也许可以对您的操作进行矢量化。

于 2013-06-24T10:26:00.153 回答