相关疑难解决方法(0)

从R data.table中删除多个列,其中包含要删除的列的参数

我试图以类似的方式操作一些data.tables,并希望编写一个函数来实现这一目标.我想传入一个参数,其中包含将执行操作的列列表.当列的向量声明是:=运算符的左侧时,这可以正常工作,但如果先前声明(或传递给函数)则不行.以下代码显示了该问题.

dt = data.table(a = letters, b = 1:2, c=1:13)
colsToDelete = c('b', 'c')
dt[,colsToDelete := NULL] # doesn't work but I don't understand why not.
dt[,c('b', 'c') := NULL] # works fine, but doesn't allow passing in of columns
Run Code Online (Sandbox Code Playgroud)

错误是"添加新列'colsToDelete'然后分配NULL(删除它)." 很明显,它将'colsToDelete'解释为新的列名.

沿着这些方向做某事时会出现同样的问题

dt[, colNames := lapply(.SD, adjustValue, y=factor), .SDcols = colNames]
Run Code Online (Sandbox Code Playgroud)

我是R的新手,但对其他语言更有经验,所以这可能是一个愚蠢的问题.

r data.table

31
推荐指数
3
解决办法
2万
查看次数

标签 统计

data.table ×1

r ×1