【发布时间】:2018-02-05 23:53:24
【问题描述】:
我有一个包含 65 个 SpatialPolygonDataFrames 的大型列表,名为 map_years。我需要在此列表中的 SPDF 内的 @data 插槽内的列中用零替换 NA。
我可以通过这样做来访问这个专栏:
> map_years[["map1951"]]@data$CATCH
[1] NA 642.11 NA NA NA NA NA 0.00 281.65
我可以通过这样做得到一个列表,其中列出了哪些是 NA:
> is.na(map_years[["map1951"]]@data$CATCH)
[1] TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE
但我不知道如何替换这些 NA。以下不起作用:( -
[1] map_years[is.na(map_years[["map1950"]]@data$CATCH)] <- 0
[2] map_years[[is.na(map_years[["map1950"]]@data$CATCH)]] <- 0
[3] map_years[["map1950"]]@data[is.na(map_years[["map1950"]]@data$CATCH)] <- 0
这是这个列表的结构截图:
编辑:我只是在处理maptools 数据集wrld_simpl 的略微修改版本,因此在data(wrld_simpl) 数据集中编辑@data 列的任何示例都有效。
【问题讨论】:
-
试试
map_years[["map1951"]]@data$CATCH[is.na(map_years[["map1951"]]@data$CATCH)] <- 0` -
好的,谢谢!我放弃了不断使用 [] @ $ 等。如果您添加答案,我会将其标记为正确。
-
谢谢。请看我的帖子。