【发布时间】:2019-12-30 21:46:23
【问题描述】:
我有一个想要修改的 data.table。 data.table 有很多列,我对其中的 n 列感兴趣,让我们说对于这个例子,来自 mtcars 的“cyl”、“hp”和“gear”是感兴趣的。我想制作一个只有这三列的新数据表,其中只有三列之一的唯一值的行。这是我目前所拥有的:
dt <- data.table(data)[, .(cyl, gear, hp)]
dt[,unique(gear),by=.(cyl,hp)]
dt[,!duplicated(dt[,gear])
有没有更好的方法来做到这一点,有人可以帮助我理解如何将它变成一个函数,在其中指定数据和感兴趣的变量?到目前为止我的尝试:
fun_plot_gam <- function(data,var,var_list){
var_list = c("cyl","gear","hp")
var = "gear" #variable I'm interested in
var_list2 = var_list[which(var_list != var)]
dt <- data.table(mtcars)[, var_list, with=FALSE]
dt[,unique(var), by=var_list2,with=FALSE] #problem line
dt[,!duplicated(dt[,var])]
return(dt)
}
我似乎没有正确理解 data.table 来制作一个函数。如果有人能指导我快速了解何时在操作 data.tables 的函数中使用“get”、“:=" 和点,我将不胜感激 =)
【问题讨论】:
-
This alternative 可能对你有用。
-
谢谢亚历克西斯 :)
标签: r data.table