用dplyr将r中的所有NAs替换为-1
我目前正与R中的tidyverse合作。在使用mice估算NAs后,一些列仍然有NAs,因为它们一开始的填充情况很差(我相信)。作为最后检查,我想用-1替换所有剩余的NAs。它通常只发生在单个列中,具体取决于数据集。长话短说,我在多个地点执行相同的过程,有时Col1在A区填充得非常好,但在B区填充得很差 目前我正在做以下工作用dplyr将r中的所有NAs替换为-1,r,dplyr,r-mice,R,Dplyr,R Mice,我目前正与R中的tidyverse合作。在使用mice估算NAs后,一些列仍然有NAs,因为它们一开始的填充情况很差(我相信)。作为最后检查,我想用-1替换所有剩余的NAs。它通常只发生在单个列中,具体取决于数据集。长话短说,我在多个地点执行相同的过程,有时Col1在A区填充得非常好,但在B区填充得很差 目前我正在做以下工作 Clean.df <- df %>% mutate( coalesce(Col1 ,-1), c
Clean.df <- df %>% mutate(
coalesce(Col1 ,-1),
coalesce(Col2, -1),
....)
Clean.df%变异(
聚结(Col1,-1),
聚结(Col2,-1),
....)
我在31个专栏中这样做,这让我觉得一定有更简单的方法。我试图阅读coalesce文档,并试图用数据帧的名称替换它,但没有成功
谢谢你的洞察力 由于您没有提供任何数据,我使用一个示例数据框来展示如何用给定值(
-1
)替换数据框中的每个NA
):
库(tidyverse)
#创建示例数据集
示例_df#A tibble:83 x 11
#>名称属vore阶守恒睡眠\总睡眠\ rem睡眠\周期
#>
#>1芝士~Acin~肉鸡~lc 12.1 NA NA
#>2猫头鹰~Aotus omni Prim~17 1.8 NA
#>3月~Aplo~herbi Rode~nt 14.4 2.4 NA
#>4格雷亚~Blar~omni Sori~lc 14.9 2.3 0.133
#>5头母牛,家养4头,0.7头,0.667头
#>6 Thre~Brad~herbi Pilo~14.42.20.767
#>7 Nort~Call~carni Carn~vu 8.7 1.4 0.383
#>8辆Vesp~Calo~Rode~7辆NA
#>9犬只肉质犬~家养10.1 2.9 0.333
#>10 Roe~Capr~herbi Arti~lc 3 NA
#> # ... 还有73行和3个变量:awake,brainwt,
#>#车身重量
#将NAs替换为-1
purrr::map_dfr(.x=示例_df,
.f=~tidyr::替换_na(数据=,-1))
#>#A tibble:83 x 11
#>名称属vore阶守恒睡眠\总睡眠\ rem睡眠\周期
#>
#>1芝士~Acin~肉鸡~lc12.1-1-1
#>2猫头鹰~Aotus omni Prim~-1171.8-1
#>3 Moun~Aplo~herbi Rode~nt 14.4 2.4-1
#>4格雷亚~Blar~omni Sori~lc 14.9 2.3 0.133
#>5头母牛,家养4头,0.7头,0.667头
#>6 Thre~Brad~herbi Pilo~-114.42.20.767
#>7 Nort~Call~carni Carn~vu 8.7 1.4 0.383
#>8 Vesp~Calo~-1 Rode~-17-1-1
#>9犬只肉质犬~家养10.1 2.9 0.333
#>10罗~Capr~herbi Arti~lc 3-1-1
#> # ... 还有73行和3个变量:awake,brainwt,
#>#车身重量
由(v0.2.1)创建于2018-10-10,由于您没有提供任何数据,我使用一个示例数据框来展示如何将数据框中的每个
NA
替换为给定值(-1
):
库(tidyverse)
#创建示例数据集
示例_df#A tibble:83 x 11
#>名称属vore阶守恒睡眠\总睡眠\ rem睡眠\周期
#>
#>1芝士~Acin~肉鸡~lc 12.1 NA NA
#>2猫头鹰~Aotus omni Prim~17 1.8 NA
#>3月~Aplo~herbi Rode~nt 14.4 2.4 NA
#>4格雷亚~Blar~omni Sori~lc 14.9 2.3 0.133
#>5头母牛,家养4头,0.7头,0.667头
#>6 Thre~Brad~herbi Pilo~14.42.20.767
#>7 Nort~Call~carni Carn~vu 8.7 1.4 0.383
#>8辆Vesp~Calo~Rode~7辆NA
#>9犬只肉质犬~家养10.1 2.9 0.333
#>10 Roe~Capr~herbi Arti~lc 3 NA
#> # ... 还有73行和3个变量:awake,brainwt,
#>#车身重量
#将NAs替换为-1
purrr::map_dfr(.x=示例_df,
.f=~tidyr::替换_na(数据=,-1))
#>#A tibble:83 x 11
#>名称属vore阶守恒睡眠\总睡眠\ rem睡眠\周期
#>
#>1芝士~Acin~肉鸡~lc12.1-1-1
#>2猫头鹰~Aotus omni Prim~-1171.8-1
#>3 Moun~Aplo~herbi Rode~nt 14.4 2.4-1
#>4格雷亚~Blar~omni Sori~lc 14.9 2.3 0.133
#>5头母牛,家养4头,0.7头,0.667头
#>6 Thre~Brad~herbi Pilo~-114.42.20.767
#>7 Nort~Call~carni Carn~vu 8.7 1.4 0.383
#>8 Vesp~Calo~-1 Rode~-17-1-1
#>9犬只肉质犬~家养10.1 2.9 0.333
#>10罗~Capr~herbi Arti~lc 3-1-1
#> # ... 还有73行和3个变量:awake,brainwt,
#>#车身重量
由(v0.2.1)于2018年10月10日创建作为Indrajeet答案的替代方案,该答案是纯粹的
dplyr
。使用Indrajeet建议的ggplot2::msleep
:
library(dplyr)
ggplot2::msleep %>%
mutate_at(vars(sleep_rem, sleep_cycle), ~ if_else(is.na(.), -1, .))
# # A tibble: 83 x 11
# name genus vore order conservation sleep_total sleep_rem sleep_cycle awake
# <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
# 1 Chee~ Acin~ carni Carn~ lc 12.1 -1 -1 11.9
# 2 Owl ~ Aotus omni Prim~ <NA> 17 1.8 -1 7
# 3 Moun~ Aplo~ herbi Rode~ nt 14.4 2.4 -1 9.6
# 4 Grea~ Blar~ omni Sori~ lc 14.9 2.3 0.133 9.1
# 5 Cow Bos herbi Arti~ domesticated 4 0.7 0.667 20
# 6 Thre~ Brad~ herbi Pilo~ <NA> 14.4 2.2 0.767 9.6
# 7 Nort~ Call~ carni Carn~ vu 8.7 1.4 0.383 15.3
# 8 Vesp~ Calo~ <NA> Rode~ <NA> 7 -1 -1 17
# 9 Dog Canis carni Carn~ domesticated 10.1 2.9 0.333 13.9
# 10 Roe ~ Capr~ herbi Arti~ lc 3 -1 -1 21
# # ... with 73 more rows, and 2 more variables: brainwt <dbl>, bodywt <dbl>
请注意,我不再使用dplyr::if_else
,因为函数需要对不同的类型具有通用性(或不知道)。因为base::ifelse
将愉快地/无声地(/slopply?)con
ggplot2::msleep %>%
mutate_all(~ ifelse(is.na(.), -1, .))
# # A tibble: 83 x 11
# name genus vore order conservation sleep_total sleep_rem sleep_cycle awake
# <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
# 1 Chee~ Acin~ carni Carn~ lc 12.1 -1 -1 11.9
# 2 Owl ~ Aotus omni Prim~ -1 17 1.8 -1 7
# 3 Moun~ Aplo~ herbi Rode~ nt 14.4 2.4 -1 9.6
# 4 Grea~ Blar~ omni Sori~ lc 14.9 2.3 0.133 9.1
# 5 Cow Bos herbi Arti~ domesticated 4 0.7 0.667 20
# 6 Thre~ Brad~ herbi Pilo~ -1 14.4 2.2 0.767 9.6
# 7 Nort~ Call~ carni Carn~ vu 8.7 1.4 0.383 15.3
# 8 Vesp~ Calo~ -1 Rode~ -1 7 -1 -1 17
# 9 Dog Canis carni Carn~ domesticated 10.1 2.9 0.333 13.9
# 10 Roe ~ Capr~ herbi Arti~ lc 3 -1 -1 21
# # ... with 73 more rows, and 2 more variables: brainwt <dbl>, bodywt <dbl>