【发布时间】:2011-09-06 09:19:50
【问题描述】:
我正在尝试通过使用na.approx() 插值从我的数据框中删除NAs,但无法删除所有NAs。
我的数据框是 4096x4096,其中 270.15 作为无效值的标志。我需要数据在所有点上都是连续的,以提供气象模型。昨天我询问并获得了答案,关于如何根据另一个数据框替换数据框中的值。但在那之后我来到na.approx(),然后决定用NA 替换270.15 值并尝试na.approx() 来插入数据。但问题是为什么na.approx() 不能取代所有的 NA。
这就是我正在做的:
- 使用 hdf5load 读取原始 hdf 文件
- 子集数据框 (4094x4096)
-
用 NA 代替标志值
> sst4[sst4 == 270.15 ] = NA -
检查第一列(或任何其他)
> summary(sst4[,1]) Min. 1st Qu. Median Mean 3rd Qu. Max. NA's 271.3 276.4 285.9 285.5 292.3 302.8 1345.0 -
运行 na.approx
> sst4=na.approx(sst4,na.rm="FALSE") -
检查第一列
> summary(sst4[,1]) Min. 1st Qu. Median Mean 3rd Qu. Max. NA's 271.3 276.5 286.3 285.9 292.6 302.8 411.0
如您所见,411 NA 尚未删除。为什么?它们是否都对应于前导/结束列值?
head(sst4[,1])
[1] NA NA NA NA NA NA
tail(sst4[,1])
[1] NA NA NA NA NA NA
na.approx 是否需要在 NA 之前和之后具有有效值来进行插值?我需要设置任何其他 na.approx 选项吗?
非常感谢
【问题讨论】:
标签: r dataframe interpolation