0

我正在使用的数据集将缺失值视为 -99,现在我需要将所有这些 -99 替换为同一行但不同列中的数字。

这是示例

V1   V2    V3  V4       V5            V6        V7
1   1958    3 1958.208 315.71       315.71    314.62    -1
2   1958    4 1958.292 317.45       317.45    315.29    -1
3   1958    5 1958.375 317.50       317.50    314.71    -1
4   1958    6 1958.458 **-99.99**   *317.10*  314.85    -1

我想用 (V6, 4) 替换 (V5, 4)。

V5 中有几个缺失的数据,我们想用 V6 中的同一行替换。

如何做到这一点?

4

1 回答 1

2

NA在读取数据时指定值会更明智。

您可以通过在(或此类的某些变体)中指定na.string 参数来做到这一点。read.table()

对于您的特定数据,尚不清楚您是否有定义的方案(如始终替换为下一列中的值),但用于将列中的“缺失”值替换V5为它们各自的值V6并假设您的数据被调用DF

 DF <- within(DF, V5 <- replace(V5, V5 == -99.99, V6[V5== -99.99])

会工作。

如果您已正确地将 -99.99 指定为缺失值 (NA),则

DF <- within(DF, V5 <- replace(V5, is.na(V5), V6[is.na(V5)])
于 2012-09-18T05:07:36.550 回答