我有一个数据帧,它有多个以字符串ID开头的列,下面是一个例子:

id_row  ID df_1 wsts (xc) ... ID df_2 ... ID df_3 ...
1   tc  2937.5 ... tc ... xk
2   tc  3048      xk     xk
3   NA 1323       ck     NA
4   xk  4245      NA     NA

...表示每个ID列之间的数值.

在每个ID列之间,我有多个带有数值的列.我的代码的主要思想是只 Select 列名中以"ID"字符串开头的列. 然后,在这些列中的每一列中,我想用字符串"NULL"替换Nas值. 此代码不起作用,请返回相同的df,而不替换所需字符串的NA值.

df_2 %>%
     select(matches("^ID")) %>%
     replace_na(list(. = "NULL"))

问题:

  • 我目前的方法有什么问题?

  • 我需要改变什么才能达到我的目标?

推荐答案

其中一种方法是加上mutate()

df <-data.frame(ID1=c("aa", "bb", NA, "dd"),
               v1=1:4,
               ID2=c(NA, "bb", NA, "dd"),
               v2=1:4)

df %>%
  mutate(across(.cols=matches("^ID"), 
                .fns=~replace_na(., "NULL")))

我用这篇文章作为灵感Using replace_na with across in mutate

R相关问答推荐

R -列表元素中所有命名项的总和

如何计算新变量中的通货inflating 率?

逐行替代引用前一行的for循环

geom_raster不适用于x比例中超过2,15的值

R等效于LABpascal(n,1)不同的列符号

编辑文件后编辑RhandsonTable

当两个图层映射到相同的美学时,隐藏一个图层的图例值

将向量组合到一个数据集中,并相应地命名行

如何使用列表中多个列表中的第一条记录创建数据框

如何使用ggplot对堆叠条形图进行嵌套排序?

使用带有OR条件的grepl过滤字符串

仅在Facet_WRAP()中的相应方面包含geom_abline()

R+reprex:在呈现R标记文件时创建可重现的示例

减go R中列表的所有唯一元素对

从数据创建数字的命名列表.R中的框

在r中整理图例和堆叠图的问题

使用geom_sf跨越日期线时的闭合边界

如何在条形图中的x和填充变量中包含多个响应变量?

如何在AER::ivreg中指定仪器?

R:如何在数据集中使用Apply