R 替换列中的行数据

R 替换列中的行数据,r,replace,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

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


如何实现这一点?

在读取数据时,指定
NA
值更为明智

可以通过在
read.table()
中指定
na.string
参数(或此类变量)来完成此操作

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

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

DF您可以在使用
read.table()
读取中的数据时指定
na.string=-99
,这将使'R'将其识别为缺少的值。谢谢,但我想用317.10替换第V6列中的同一行。您现在知道如何替换它了吗?使用“==”和非整数值是相当危险的。是的。如果op正确读取缺少的值,就可以避免。
DF <- within(DF, V5 <- replace(V5, is.na(V5), V6[is.na(V5)])