将NA值替换为R中的一堆随机生成的值

8ehkhllq  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(99)

我想过滤Title列,然后用一组随机生成的值(在最小和最大年龄范围内)替换Age列中的NA值。
titanic_df4 <- titanic_df3 %>% filter(titanic_df3$Title=='Mr.') %>% mutate(Age = replace_na(Age, runif(1, min=14, max=57)))
但它只是用范围内的一个特定值替换了na值,我该怎么办?
试过这个

titanic_df4 <- titanic_df3 %>% filter(titanic_df3$Title=='Mr.') %>% mutate(Age = replace_na(Age, runif(1, min=14, max=57)))
cig3rfwq

cig3rfwq1#

replace_na仅适用于单个值。从?replace_na帮助页面:
如果data是一个向量,则replace采用单个值。该单个值替换向量中的所有NA值。
相反,我们可以为整个向量生成足够的值,并使用coalesce()来填充NA值。

titanic_df3 %>%
  ## Title not titanic_df3$Title
  filter(Title == 'Mr.') %>% 
  mutate(Age = coalesce(Age, runif(n(), min=14, max=57)))

相关问题