shang00122 可以试试ifelse()
函数
df<-data.frame(a1=c(2.1,NA,3.1,NA,NA,5.1),a2=c(1,3,5,6,7,9))
df
#> a1 a2
#> 1 2.1 1
#> 2 NA 3
#> 3 3.1 5
#> 4 NA 6
#> 5 NA 7
#> 6 5.1 9
df$a1<-ifelse(is.na(df$a1),df$a2,df$a1)
df
#> a1 a2
#> 1 2.1 1
#> 2 3.0 3
#> 3 3.1 5
#> 4 6.0 6
#> 5 7.0 7
#> 6 5.1 9
<sup>Created on 2020-11-28 by the reprex package (v0.3.0)</sup>