r - 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
解决方案
stringr::str_c
使用with怎么样transform/mutate
library(dplyr)
library(stringr)
df %>%
mutate(c = str_c('string:',c))
推荐阅读
- android - React Native App Play Store JavascriptException
- reactjs - 如何覆盖 Material UI DataGrid 中的图标?
- audio - 如何在 swiftUI 中播放来自 http 数据流的音频?
- reactjs - Reactjs 状态变量不更新
- lua - 使用 lua 将字符串变成表情符号
- r - ggplot scale_x_discrete 删除 barplot 中的值
- c# - 统一使用 3d 模型作为按钮
- javascript - Express res.write 不等待一系列承诺完成
- ios - Swift - 制作 CAShapeLayer 发光效果
- javascript - 'CI' 不是内部或外部命令、可运行程序或批处理文件