R:对NA和vector的误解';s大厦
我有两个向量:向量1和向量2,长度相同。我只想得到vector1的值,其中vector1不是na,vector2不是na。我试过使用该代码,但不起作用:R:对NA和vector的误解';s大厦,r,vector,na,R,Vector,Na,我有两个向量:向量1和向量2,长度相同。我只想得到vector1的值,其中vector1不是na,vector2不是na。我试过使用该代码,但不起作用: vector1step1<-ifelse(((is.na(vector1)==F)&(is.na(vector2)==F)), vector1, NA) vector1step2<-vector1step1[!is.na(vector1step1)] vector1step1考虑这一点的最佳方式可能是将其作为data.fr
vector1step1<-ifelse(((is.na(vector1)==F)&(is.na(vector2)==F)), vector1, NA)
vector1step2<-vector1step1[!is.na(vector1step1)]
vector1step1考虑这一点的最佳方式可能是将其作为data.frame或matrix,并创建第三个向量,该向量由对每一行的apply调用产生。差不多
dta <- data.frame(v1 = vector_step1, v2=vector_step2)
dta$v3 <- apply(dta, 1, function(x) ifelse(!is.na(x[1]), x[1], x[2]))
dta Tryvector1[!is.na(vector1)和!is.na(vector2)]
@docendodiscimus您应该继续并将其作为答案发布。不,apply
不是最好的方法。没有理由在行上循环。另外,不要对长度为1的向量使用ifelse
。在这种情况下,使用if
和else
。