将所有列中的文本替换为数据表 R 中的另一个文本

标签 r data.table

找到了dataframe的解决方案,将所有列中的文本替换为另一个文本。但我无法对数据表使用相同的方法。以下是我尝试过的。但是,当将 data.frame 更改为 data.table 时,它不会提供正确的数据。

DF<- data.frame(lapply(DT, function(x) {gsub("abc", "xyz", x)}))

我需要在 data.table 对象的所有列中查找并替换所有出现的 abcxyz

最佳答案

如果它是一个 data.table 并且我们想要更改所有列值,则使用 data.table 方法。根据OP的代码,我们选择所有列(因此无需指定.SDcols),使用lapply循环遍历Data.table的子集,替换' abc' 与 'xyz' 和 gsub (假设有多个 'abc' 实例),并通过将输出分配 (:=) 回原始列来更新原始列列

attrdata2[, names(attrdata2) := lapply(.SD, function(x) gsub("abc", "xyz", x))]

关于将所有列中的文本替换为数据表 R 中的另一个文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53649580/

相关文章:

R time_trans 与 POSIXct 类的对象一起使用

r - 确定列值在 data.table 中是否唯一

r - 与data.table分组时,如何保留未出现在输入数据中的变量组合?

重复滚动连接而不循环

r - 为数据框中的每个日期插入日期序列

r - 如何使用 data.table 按日期(月、年、日)和子组汇总结果

r - 使用 R 估计滚动风险值(value) (VaR)

r - 使用 ggplot 和facet_wrap 从 0 开始 Y 轴

r - 如何获取 R 字符向量中的 <= 符号

r - 为什么 geom_rect() 与facet_wrap() 一起使用时会添加许多多层?