Desidero modificare la classe delle variabili selezionate in una tabella di dati, utilizzando un'operazione vettoriale. Sono nuovo della sintassi data.table e sto cercando di imparare il più possibile. Ora la domanda è di base, ma mi aiuterà a capire meglio il modo di pensare della tabella dati!Riclassifica colonne selezionate nella tabella dati
Una domanda simile è stata posta here! Tuttavia, la soluzione sembra riguardare sia la riclassificazione di una sola colonna o di tutte le colonne. La mia domanda è unica per alcune colonne selezionate.
### 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]
Qualsiasi aiuto sarebbe apprezzato. I miei dati sono grandi e quindi è necessario utilizzare espressioni regolari per creare un vettore di numeri di colonne da riclassificare.
Grazie per il vostro tempo.
+1 questo è tutto !! Ok, dato che la mia risposta non è corretta, la cancellerò. –
No, no, ho imparato quel trucco ('.SDCols') con te così ... – dickoa
(+1) puoi anche passare direttamente 'index'. 'data [, c (indice): = lapply (.SD, as.character), .SDcols = index]' – Arun