如何解决使用赋值运算符和字符串列名更新数据表列的值不起作用
我需要像这样更新数据表中列的值:
x[,myvar := make.names(myvar)]
这很好用。但是,我现在需要使用带有列名称的字符串变量,这似乎不起作用:
mystringvar <- "myvar"
x[,get(mystringvar) := make.names(get(mystringvar))]
使用字符串变量而不是写列名的正确方法是什么?
输出:Error in get(mystringvar) : object 'myvar' not found
。
解决方法
在左侧,您不需要 get
使用 (column_name)
应该可以工作。
library(data.table)
x[,(mystringvar) := make.names(get(mystringvar))]
,
我们可以使用.SDcols
library(data.table)
x[,(mystringvar) := make.names(.SD[[1]]),.SDcols = mystringvar]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。