,所以如果我有一個data.table定義爲:R 1至函數傳遞參數data.table呼籲
> dt <- data.table (x=c(1,2,3,4), y=c("y","n","y","m"), z=c("pickle",3,8,"egg"))
> dt
x y z
1: 1 y pickle
2: 2 n 3
3: 3 y 8
4: 4 m egg
和可變
fn <- "z"
,我感到我可以從下拉列data.table通過如下:
> dt[,fn, with=FALSE]
什麼我不知道該怎麼做的是以下的data.table相當於:
> factorFunction <- function(df, fn) {
df[,fn] <- as.factor(df[,fn])
return(df)
}
如果我設置fn =「x」並調用factorFunction(data.frame(dt),fn)它就可以很好地工作。
所以我嘗試用data.table,但這並不在sort.list工作
> factorFunction <- function(dt, fn) {
dt[,fn, with=FALSE] <- as.factor(dt[,fn, with=FALSE])
return(dt)
}
錯誤(Y): 'X' 必須是原子的 'sort.list' 你有沒有在名單上叫'排序'?
順便說一句,這裏的一個(非常unidiomatic)方式:'dt [,fn] < - as.factor(dt [,fn,with = FALSE] [[1]])''這與我寫的非常接近,我想。 – Frank