R用na.locf替换缺失值

问题描述 投票:1回答:3

我是R的新手。我希望替换数据中X的缺失值。对于相同的“ ID”和相同的“ Day”,当“ Time” = 1和2时,如何将“ X”的缺失值替换为“ X”的值?

X:仅在时间为3时才有一个有效值,其他值丢失。

 ID   Day  Time   X    
 1    1     1     NA
 1    1     2     NA
 1    1     3     7.4
 1    2     1     NA
 1    2     3     6.2
 2    1     1     NA
 2    1     2     NA
 2    1     3     7.1
 2    2     3     5.9
 2    2     2     NA
 2    2     1     NA

我能够使用zoo和data.table包编写并运行以下代码,但是随后当我检查数据时,它不起作用-当time = 1且X值仍然缺少所有值2.我的代码有什么问题吗?有什么建议么?我在R方面的经验非常有限。预先感谢您!

setDT(data1) data1 <- data1 [order(-Time), X := na.locf(X), by = .(ID, Day)]

我是R的新手。我希望替换数据中X的缺失值。对于相同的“ ID”,如何将“时间” = 1和2时缺少的“ X”值替换为“ X”时的“ X”值...

r data.table time-series missing-data zoo
3个回答
2
投票
这里有2个选项:

1
投票
我们可以使用replace

0
投票
在问题的示例中,每个组最多具有一个非缺失值,并且在每种情况下,均应将该值分配给该组中的每个值,因此,如果通常,则将该值分配给该组中的所有X值像这样的组:
© www.soinside.com 2019 - 2024. All rights reserved.