r - 如果 B 列包含字符串,则替换 A 列的值
问题描述
我有一个如下所示的数据框:
ColA ColB ColC ColD
1 Dog Snow Puppy_1
1 Cat Peanut Kitten_1
14 Cat Smokey Cat_9
125 Dog Fido Dog_9
51 Fish Jelly Fish_5
12 Fish Fishy Beta_1
如果包含,我想ColB
用ColD
's 内容替换:ColD
Puppy
ColA ColB ColC ColD
1 Puppy_1 Snow Puppy_1
1 Cat Peanut Kitten_1
14 Cat Smokey Cat_9
125 Dog Fido Dog_9
51 Fish Jelly Fish_5
12 Fish Fishy Beta_1
谢谢!
解决方案
一种选择是grep
创建一个索引并进行分配以将“ColB”的值替换为“ColD”的值
i1 <- grep("Puppy", df1$ColD)
df1$ColB[i1] <- df1$ColD[i1]
或使用data.table
library(data.table)
setDT(df1)[grepl("Puppy", ColD), ColB := ColD][]
推荐阅读
- python - ValueError at /(未设置必需的参数名称)
- java - 无法解决简单的 DMOJ 数学问题?
- database - 存储大量分层数据的小变更集
- wso2 - IWA 不适用于 WSO2 身份服务器(wso2is-km-5.9.0)
- c# - 触发并忘记异步等待调用
- android - 通过按返回按钮关闭应用程序时取消 Retrofit+RxJava 调用
- c++ - INET无线接口表模块参数
- rust - 访问子进程的非标准文件描述符
- firebase - 超过 Firebase(Cloud Firestore)中每个数据库每秒写入 10k 的限制
- ios - 在 Swift 中从多个服务中解码 JSON 的更简单方法