首页 > 解决方案 > R Data.table 操作

问题描述

我有一个 R 数据表,如下所示:

    ColName   ColContent
    1          Caxs are cool
    2          Vabs are awesome

我想维护 ColContent 以便x替换为rb替换为n,给出结果

    ColName   ColContent
      1        Cars are cool
      2        Vans are awesome

如何使用数据表执行此操作?我尝试了 lapply 并分配结果,也尝试了 sapply,但是这两种方法都有问题。

也试过,

colreplacement ='ColContent' #column name is stored in variable

dt= data.table name 数据所在的位置。

dt[,get(colreplacement) := lapply(dt[,get(colreplacement), function(x) str_replace_all(x, c("x"="r","b"="n")))]

但这导致了一个错误:

获取错误(colreplacement):找不到对象“colreplacement”

关于如何让它发挥作用的想法?似乎它没有将变量的名称解析为其在 中的值lapply,因为dt[,get(colreplacement)]单独工作正常。

标签: rdataframedatatabledata-manipulation

解决方案


stringreplace=function(x){
return(str_replace_all(x,c("x"="r","b"="n")))}

dt[[colreplacement]]=sapply(dt[[colreplacement]],stringreplace)
```
this did the trick


推荐阅读