我希望使用矢量化操作更改數據表中所選變量的類別。我是data.table語法的新手,並且正在嘗試儘可能多地學習。我現在的問題是基本的,但它會幫助我更好地理解數據表的思維方式!重新分類數據表中的選擇列
有人問過類似的問題here!但是,解決方案似乎涉及重新分類僅一列或所有列。我的問題對於少數幾列是獨一無二的。
### Load package
require(data.table)
### Create pseudo data
data <- data.table(id = 1:10,
height = rnorm(10, mean = 182, sd = 20),
weight = rnorm(10, mean = 160, sd = 10),
color = rep(c('blue', 'gold'), times = 5))
### Reclass all columns
data <- data[, lapply(.SD, as.character)]
### Search for columns to be reclassed
index <- grep('(id)|(height)|(weight)', names(data))
### data frame method
df <- data.frame(data)
df[, index] <- lapply(df[, index], as.numeric)
### Failed attempt to reclass columns used the data.table method
data <- data[, lapply(index, as.character), with = F]
任何幫助,將不勝感激。我的數據很大,因此使用正則表達式創建要重新分類的列號向量是必要的。
謝謝你的時間。
+1就是這樣!好的,因爲我的回答不正確,我將刪除它。 – 2013-04-25 21:53:21
不,不,我學會了與你一樣的技巧('.SDCols')... – dickoa 2013-04-25 21:54:02
(+1)你也可以直接傳遞'index'。數據[,c(索引):= lapply(.SD,as.character),.SDcols = index]' – Arun 2013-04-25 22:34:52