小编han*_*res的帖子

在R/Rcpp中过滤data.frame列列内容的最快方法

我有一个data.frame:

df <- structure(list(id = 1:3, vars = list("a", c("a", "b", "c"), c("b", 
"c"))), .Names = c("id", "vars"), row.names = c(NA, -3L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

列表列(每个都有一个字符向量):

> str(df)
'data.frame':   3 obs. of  2 variables:
     $ id  : int  1 2 3
     $ vars:List of 3
      ..$ : chr "a"
      ..$ : chr  "a" "b" "c"
      ..$ : chr  "b" "c"
Run Code Online (Sandbox Code Playgroud)

我想根据过滤data.frame setdiff(vars,remove_this)

library(dplyr)
library(tidyr)
res <- df %>% mutate(vars = lapply(df$vars, setdiff, "a"))
Run Code Online (Sandbox Code Playgroud)

这让我这样:

   > res
      id vars
    1  1 …
Run Code Online (Sandbox Code Playgroud)

performance r rcpp dplyr data.table

6
推荐指数
2
解决办法
2690
查看次数

标签 统计

data.table ×1

dplyr ×1

performance ×1

r ×1

rcpp ×1