r - 使用 fill() 函数将名称填充到列中

标签 r dplyr tidyr

我有一个专栏,我尝试使用 tidyr 中的 fill() 函数用其前面的字符串填充空白。

例如我想从:

col_name
   NAME1
 (blank)
   NAME2
 (blank)

致:

col_name
   NAME1
   NAME1
   NAME2
   NAME2

当我输入代码时:

fill(df, col_name)

控制台注册了语法,但原始输出仍然相同。

我想要一个可以保留在管道中的解决方案%>%

最佳答案

您可能需要首先将“空白”值设置为NA。例如,如果您的 (blank) 值是空字符串 "",请先将其转换为 NA,然后 fill应该管用:

library(tidyverse)
df <- tibble(col_name = c("NAME1", "", "NAME2", ""))
df %>% 
  mutate(col_name = na_if(col_name == "")) %>% 
  fill(col_name)
#> # A tibble: 4 x 1
#>   col_name
#>      <chr>
#> 1    NAME1
#> 2    NAME1
#> 3    NAME2
#> 4    NAME2

关于r - 使用 fill() 函数将名称填充到列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46517620/

相关文章:

R:清理宽而杂乱的数据框

r - 按向量 R 的顺序查找先前最大值的列表

r - 如何使用 tidyverse 管道重命名具有行字符值的列?

R:使用 dplyr 过滤 data.table 失败

r - dplyr::if_else - 检查条件并插入 NA 作为评估的一部分

r - 将列分成多行并向左填充,在 R 中

r - 如何使用 R 合并两个没有公共(public)列名的数据框

r - 使用 MICE 进行多重插补后,如何在 R 中的子集上使用 lm() 运行线性回归

java - RMySQL 包无法通过 JRI 接口(interface)加载

string - 如何将字符列表折叠为 R 中的单个字符串