R语言 计算起始列中带有NA的新列

v7pvogib  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(161)

我有data.frame(col1 = 1:4, col2 = c(NA,1,2,3), col3 = 5:8)

并希望创建额外的列,该列基于包含NA的其他列的计算,但结果总是得到NA。我不希望看到NA,但希望看到基于df %>% mutate( new = .[[1]] + .[[2]])的1

有什么建议如何解决这个问题吗?我更愿意继续使用tidyverse和dplyr

gwbalxhn

gwbalxhn1#

下面是一个可能的框架:replace NA(带0),进行计算,然后使用rows_update替换原始NA。

library(dplyr)
df %>% 
  replace(is.na(.), 0) %>% 
  mutate(new = .[[1]] - .[[2]]) %>% 
  rows_update(df)

  col1 col2 col3 new
1    1   NA    5   1
2    2    1    6   1
3    3    2    7   1
4    4    3    8   1

相关问题