我有两列如下:
V1
我想在新列中添加V2
NA
,只有当其中一个列中有V1
时。否则我将取 V1 V2 col3
1 2344 122 2344
2 NA 322 322
3 100 NA 100
4 43 33 43
的价值。
预期产出:
TBB$col3<-ifelse(is.na(TBB$V1)|is.na(TBB$V2),sum(TBB$V1,TBB$V2),TBB$V1)
我试过了:
V1 V2 col3
1 2344 122 NA
2 NA 322 NA
3 100 NA NA
4 43 33 NA
但它给了我
django-admin startproject mysite
答案 0 :(得分:1)
我们可以使用max.col
TBB$col3 <- TBB[,1:2][cbind(1:nrow(TBB), max.col(!is.na(TBB[,1:2]), "first"))]
TBB$col3
#[1] 2344 322 100 43
答案 1 :(得分:0)
结构值有些奇怪,因为它的rownames规范比任何列的值都要长,所以我修复了它然后我的代码成功了
python
使用!rowSums(is.na(。))的逻辑强制值,只有在没有NA的情况下才会为TRUE,在这种情况下你需要V1,否则你想要使用na.rm的TBB <- structure(list(V1 = c(2344, NA, 100, 43), V2 = c(122,
322, NA, 33), col3 = c(NA_real_, NA_real_, NA_real_,
NA_real_)), .Names = c("V1", "V2", "col3"), row.names = c(NA,
-4L), class = "data.frame")
ifelse( !rowSums(is.na(TBB[1:2])), TBB$V1, rowSums(TBB, na.rm=TRUE) )
[1] 2344 322 100 43