给第二列 0 值,其中第一列显示同一行的 NA
Give second column 0 value where first column shows NA for the same row
我有一个 16 列成对的数据集。一个带有物种名称,第二个带有覆盖百分比(因此 8 列带有物种名称,8 列带有覆盖百分比的整数)。我希望物种名称为 NA 的行在同一行的相邻覆盖百分比列中有一个 0。我如何编写执行此操作的循环?
note that I can't stack the vectors they must remain in this structure for later analyses
我试过从在线资源中复制大量循环以及 SE 上的无数示例,但我似乎无法正确复制。我已经为初学者尝试了这段代码
for(i in 1:nrow(x)){
if (x$species_1[i]==NA) {x$cover_1[i] <- 0}
else {NULL}
}
但是它抛出了这个
Error in if (x$species_1[i] == NA) { : missing value where TRUE/FALSE needed
我读到的内容与矢量中有 NA 的事实有关......所以你看到了我的难题......
最后,我希望物种的所有 NA 在覆盖百分比的相邻列中都有相应的 0
试试这个:
x[is.na(x$species_1), "cover_1"] <- 0
改变
if (x$species_1[i]==NA)
至
if ( is.na(x$species_1[i]) )
我有一个 16 列成对的数据集。一个带有物种名称,第二个带有覆盖百分比(因此 8 列带有物种名称,8 列带有覆盖百分比的整数)。我希望物种名称为 NA 的行在同一行的相邻覆盖百分比列中有一个 0。我如何编写执行此操作的循环?
note that I can't stack the vectors they must remain in this structure for later analyses
我试过从在线资源中复制大量循环以及 SE 上的无数示例,但我似乎无法正确复制。我已经为初学者尝试了这段代码
for(i in 1:nrow(x)){
if (x$species_1[i]==NA) {x$cover_1[i] <- 0}
else {NULL}
}
但是它抛出了这个
Error in if (x$species_1[i] == NA) { : missing value where TRUE/FALSE needed
我读到的内容与矢量中有 NA 的事实有关......所以你看到了我的难题......
最后,我希望物种的所有 NA 在覆盖百分比的相邻列中都有相应的 0
试试这个:
x[is.na(x$species_1), "cover_1"] <- 0
改变
if (x$species_1[i]==NA)
至
if ( is.na(x$species_1[i]) )