r - 用另一个字符串替换R中数据帧的每一行的子字符串
问题描述
我有一个数据框,对于每一行,我想用 B 列中的值替换 A 列中的常规参数。
我可以用循环来做到这一点,但我不知道如何用 lapply 更快地做到这一点。
column A column B
hotels in {d} London
{d} city breaks Bangkok
cheap hotels {d} New York
我希望结果是:
Column A
hotels in London
Bangkok city breaks
cheap hotels New York
我可以用这样的循环来做到这一点:
for (i in 1:nrow(df){
df$Column A[i] <- gsub("\\{d\\}",df$Column B[i], dfColumn A[i])
}
但是对于数百万行,这会很慢..
解决方案
您可以在一行中完成它stringr
,它是矢量化的......
library(stringr)
df$columnA <- str_replace(df$columnA, "\\{d\\}", df$columnB)
df
columnA columnB
1 hotels in London London
2 Bangkok city breaks Bangkok
3 cheap hotels New York New York
推荐阅读
- react-native - 如何为a的宽度和高度设置动画
在 React Native 中? - java - 如何在 java 中使用 BufferedReader 从系统获取超过 5118 个字符的输入?
- c++ - 对象删除后对成员变量的引用会损坏吗?
- mysql - 如何使用“INSERT (name, ...) INTO table SELECT name, ... FROM table_2”只插入不具有相同'NAME'的行?
- node.js - 一个 Redis 连接可以服务一千个并发用户吗?
- asp.net - 如何在 ASP.net MVC 中存储更改的数据?
- python - Parquet 数据库的组织和重复数据删除
- apache-spark - 单一地点的 Spark 模式管理
- applescript - posix无法将文件转换为类型文件
- javascript - ReactJS如何在setState之后调用函数来更改JSON dict值?