小编Net*_*tle的帖子

使用mutate_if和replace_na替换数字列上的NA

我想更换使用的一些变化在数字列的NA mutate_ifreplace_na如果可能的话,但不能找出语法.

df <-tibble(
    first = c("a", NA, "b"),
    second = c(NA, 2, NA),
    third = c(10, NA, NA)
  )

#> # A tibble: 3 x 3
#>   first second third
#>   <chr>  <dbl> <dbl>
#> 1 a      NA     10.0
#> 2 <NA>    2.00  NA  
#> 3 b      NA     NA
Run Code Online (Sandbox Code Playgroud)

最终结果应该是:

#> # A tibble: 3 x 3
#>   first second third
#>   <chr>  <dbl> <dbl>
#> 1 a       0     10.0
#> 2 <NA>    2.00   0  
#> …
Run Code Online (Sandbox Code Playgroud)

r tidyverse

8
推荐指数
2
解决办法
3091
查看次数

使用Tidyverse Join更新/替换Dataframe中的值

使用查找表中的(正确)值更新/替换主数据集中的NA的最有效方法是什么?这是一个如此常见的操作!类似的问题似乎没有整洁的解决方案.

约束:1)请假设大量缺失值和更大的查找表比给出的示例.所以情况下明智的替换操作将是不切实际的(不case_when,if_else等等)

2)查找表没有主数据帧的所有值,只有替换的值.

Tidyverse解决方案的答案更受欢迎.类似的问题似乎没有整洁的解决方案.

library(tidyverse)

### Main Dataframe ###
df1 <- tibble(
  state_abbrev = state.abb[1:10],
  state_name = c(state.name[1:5], rep(NA, 3), state.name[9:10]),
  value = sample(500:1200, 10, replace=TRUE)
)


#> # A tibble: 10 x 3
#>    state_abbrev state_name value
#>    <chr>        <chr>      <int>
#>  1 AL           Alabama      551
#>  2 AK           Alaska       765
#>  3 AZ           Arizona      508
#>  4 AR           Arkansas     756
#>  5 CA           California   741
#>  6 CO           <NA>        1100
#>  7 CT           <NA> …
Run Code Online (Sandbox Code Playgroud)

r dplyr

4
推荐指数
2
解决办法
1259
查看次数

将列表添加到数据框中的每一行

我想向数据框的每一行添加一个列表。

# DATA
> df <- tibble(ID = 1:6, x = letters[1:6])

# A tibble: 6 x 2
     ID x    
  <int> <chr>
1     1 a    
2     2 b    
3     3 c    
4     4 d    
5     5 e    
6     6 f    
Run Code Online (Sandbox Code Playgroud)

添加单个值很容易。

df$new.col <- "boo"

# A tibble: 6 x 3
     ID x     new.col
  <int> <chr> <chr>  
1     1 a     boo    
2     2 b     boo    
3     3 c     boo    
4     4 d     boo    
5     5 e     boo    
6     6 f     boo …
Run Code Online (Sandbox Code Playgroud)

r dplyr

1
推荐指数
1
解决办法
1374
查看次数

标签 统计

r ×3

dplyr ×2

tidyverse ×1