替换列中的行数据

时间:2012-09-18 04:35:13

标签: r replace

我正在使用的数据集将缺失值视为-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中的同一行替换。

如何实现这一目标?

1 个答案:

答案 0 :(得分: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)])