填写缺失数据,并在R中复制其他数据

填写缺失数据,并在R中复制其他数据,r,duplicates,R,Duplicates,我的数据是以年为单位的,并不是所有集群都有1990年到2010年的数据,所以首先我想为所有ID填充缺失的年份。然后,我想填充我添加年份的其余字段,并为我想要预测的其他字段创建NA值。我如何在R中进行此操作 LAT LONG Cluster_ID year 13.5330 -15.4180 1 1990 13.5330 -15.4180 1 1992 13.5330 -15.4180 1 1995 1

我的数据是以年为单位的,并不是所有集群都有1990年到2010年的数据,所以首先我想为所有ID填充缺失的年份。然后,我想填充我添加年份的其余字段,并为我想要预测的其他字段创建
NA
值。我如何在R中进行此操作

LAT        LONG    Cluster_ID year
13.5330 -15.4180   1            1990
13.5330 -15.4180   1            1992
13.5330 -15.4180   1            1995
13.5330 -15.4180   1            2010
13.5330 -15.4170   2            1995
13.5330 -15.4170   2            1997
13.5330 -15.4170   2             2005
13.5340 -14.9350   3             2005
13.5340 -14.9350   3             2006
13.5340 -15.9170   4             2010
13.3670 -14.6190   5             2006

您只需使用所有可能的组合创建一个额外的数据帧,如下所示:

mycomb <- expand.grid(Cluster_ID = unique(mydat$Cluster_ID),
          year = 1990:2010)
以获得期望的结果。另请参见
?展开.grid
?合并


使用以下各项测试代码:

zz <- textConnection('LAT        LONG    Cluster_ID year
13.5330 -15.4180   1            1990
13.5330 -15.4180   1            1992
13.5330 -15.4180   1            1995
13.5330 -15.4180   1            2010
13.5330 -15.4170   2            1995
13.5330 -15.4170   2            1997
13.5330 -15.4170   2             2005
13.5340 -14.9350   3             2005
13.5340 -14.9350   3             2006
13.5340 -15.9170   4             2010
13.3670 -14.6190   5             2006')

mydat <- read.table(zz,header=TRUE)

zz我该怎么做?我是新来的。只需引导我将接受你点击你想要接受的答案旁边的空复选标记。我看到它并接受了它。你对我如何处理上述问题有什么想法吗?如果您有任何帮助,请单击答案旁边的绿色小复选标记。只是一个问题,我执行了代码直到mergin点。我发现它已经创造了一个多年的阵列。我看到你使用了textconnection()函数,但我不明白为什么。如果我的数据有大约20个变量,我也会这样做吗?@jonestats textConnection()只会将您提供给我们的数据读入R,这样我就可以测试代码了。您不必在代码行下执行代码,这是为那些想在某些数据上试用我的解决方案的人准备的。另请参见
?textConnection
PS:如果答案解决了您的问题,您应该接受它。另请参见后续内容。我要确保我不替换“年份”列中的年份,以便我只填写缺失的值?谢谢你能看看你的解决方案吗?
zz <- textConnection('LAT        LONG    Cluster_ID year
13.5330 -15.4180   1            1990
13.5330 -15.4180   1            1992
13.5330 -15.4180   1            1995
13.5330 -15.4180   1            2010
13.5330 -15.4170   2            1995
13.5330 -15.4170   2            1997
13.5330 -15.4170   2             2005
13.5340 -14.9350   3             2005
13.5340 -14.9350   3             2006
13.5340 -15.9170   4             2010
13.3670 -14.6190   5             2006')

mydat <- read.table(zz,header=TRUE)