我有data.frame(col1 = 1:4, col2 = c(NA,1,2,3), col3 = 5:8)
data.frame(col1 = 1:4, col2 = c(NA,1,2,3), col3 = 5:8)
并希望创建额外的列,该列基于包含NA的其他列的计算,但结果总是得到NA。我不希望看到NA,但希望看到基于df %>% mutate( new = .[[1]] + .[[2]])的1
NA
df %>% mutate( new = .[[1]] + .[[2]])
有什么建议如何解决这个问题吗?我更愿意继续使用tidyverse和dplyr
gwbalxhn1#
下面是一个可能的框架:replace NA(带0),进行计算,然后使用rows_update替换原始NA。
replace
rows_update
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
1条答案
按热度按时间gwbalxhn1#
下面是一个可能的框架:
replace
NA(带0),进行计算,然后使用rows_update
替换原始NA。