我有一个成对的16列数据集。一个带有物种名称,第二个带有百分比覆盖率(因此8列带有物种名称,而8列带有整数表示百分比覆盖率)。我希望具有NA作为物种名称的行在同一行的相邻覆盖百分比列中具有0。如何编写执行此操作的循环?
请注意,我无法堆叠必须保留在此结构中的向量以用于以后的分析
我曾尝试从在线资源中复制大量循环,并在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,以表示覆盖率
答案 0 :(得分:1)
尝试以下方法:
x[is.na(x$species_1), "cover_1"] <- 0
答案 1 :(得分:0)
更改
if (x$species_1[i]==NA)
到
if ( is.na(x$species_1[i]) )