首页 > 解决方案 > paste0 和 ifelse 作为 dplyr 中管道的一部分

问题描述

我有以下数据框

df <- data.frame(a=c(1,2,3,4,5),b=c(6,7,8,9,10),c=c(3,NA,5,6,7))
  a  b  c
1 1  6  3
2 2  7 NA
3 3  8  5
4 4  9  6
5 5 10  7

我想在 c 列的每个值中添加一个“字符串:”,除非它是 NA。

我想过使用:

library(dplyr)
df %>% select(c) %>% ifelse(is.na(.),c,(paste0("string:"))

我想要的输出是:

  a  b  c
1 1  6  string:3
2 2  7  NA
3 3  8  string:5
4 4  9  string:6
5 5 10  string:7

标签: rdplyr

解决方案


stringr::str_c使用with怎么样transform/mutate

library(dplyr)
library(stringr)
df %>% 
    mutate(c = str_c('string:',c))

推荐阅读