r - 查找字符串的一部分并更新另一列
问题描述
我有以下数据框,我想根据 A 列中的字符串部分更改 B 列。因此,如果找到 C/OA,则 B 列将为 1,否则没有变化。
df1 <- data.frame(A = c("aC/O A","b","C/O Addddd","d","C/O A","C/O A1111"),
B = c(0,2,3,4,5,""))
A B
1 aC/O A 0
2 b 2
3 C/O Addddd 3
4 d 4
5 C/O A 5
6 C/O A1111
请注意,6 的值为空白。
期望的结果如下。
A B
1 aC/O A 1
2 b 2
3 C/O Addddd 1
4 d 4
5 C/O A 1
6 C/O A1111 1
解决方案
用于grepl
查找字符串的出现并将相应的B
值更新为 1。
df1$B[grepl("C/O A", df1$A)] <- 1
数据
将数据读取为字符而不是因子
df1 <- data.frame(A = c("aC/O A","b","C/O Addddd","d","C/O A","C/O A1111"),
B = c(0,2,3,4,5,""), stringsAsFactors = FALSE)
推荐阅读
- modx - 块不保存自闭合标签。有什么办法解决吗?
- css - 绝对定位元素扩展父元素
- regex - How can I remove the email in the end of the url
- python - AWS Glue - Pick Dynamic File
- c# - 对象链
- swift - 重新注册一个 AnnotationView
- spring - Spring JPA CrudRepository save(Entity) 在 id 字段中返回 0
- reactjs - Redux-dev-tool 中的更改意味着 Redux 状态更改良好?
- html - 将图像插入 HTML 以进行高度裁剪
- ms-access - MS Access 2016 查询按三个条件插入列和分组数据