我有一个很大的数据集,每个站点的纬度和经度都相同。在数据集中,某些行缺少经度和纬度,而是说“未知”。我需要从其他未丢失数据的站点上用经纬度填充未知数。
在此示例中,我希望第5行为lat和lon插入3和8:
> station <- c("a","b","c","c","c")
> lat <- c("1","2","3","3","unknown")
> lon <- c("6","7","8","8","unknown")
> data.frame(station,lat,lon)
station lat lon
1 a 1 6
2 b 2 7
3 c 3 8
4 c 3 8
5 c unknown unknown
我的数据集中有一百万行,如果要花几分钟才能完成,那很好,因为该行仅在分析开始之前运行一次。除非确实需要,否则我不希望安装其他软件包。
大概是这样-
df$station <- as.character(df$station)
unknownstations <- unique(subset(df,df$lat == "unknown","station"))
unknownstationscoords <- unique(subset(df,station %in% unknownstations$station & lat != "unknown"))
for( i in unknownstations$station)
{
df[df$station == i,"lat"] <- subset(unknownstationscoords,station %in% i,"lat")
df[df$station == i,"lon"] <- subset(unknownstationscoords,station %in% i,"lon")
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句