【问题标题】:R Data.table manipulationR 数据表操作
【发布时间】:2019-11-21 13:19:31
【问题描述】:

我有一个 R 数据表如下:

    ColName   ColContent
    1          Caxs are cool
    2          Vabs are awesome

我想维护 ColContent 以便 xr 替换,bn 替换,给出结果

    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")))]

但这导致了一个错误:

get(colreplacement) 出错:找不到对象“colreplacement”

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

【问题讨论】:

    标签: r dataframe datatable data-manipulation


    【解决方案1】:
    stringreplace=function(x){
    return(str_replace_all(x,c("x"="r","b"="n")))}
    
    dt[[colreplacement]]=sapply(dt[[colreplacement]],stringreplace)
    ```
    this did the trick
    
    

    【讨论】:

      【解决方案2】:

      这可能是一个更优雅的解决方案。

      library('stringr')
      dt[, ColContent := str_replace_all(ColContent, c('x'='r', 'b'='n'))]
      

      【讨论】:

        猜你喜欢
        • 2019-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-28
        • 2021-06-28
        • 2015-09-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多