Ich wünsche die Klasse der ausgewählten Variablen in einer Datentabelle zu ändern, einen vektorisiert Betrieb verwenden. Ich bin neu in der Data.table-Syntax und versuche so viel wie möglich zu lernen. Ich bin jetzt die Frage ist grundlegend, aber es wird mir helfen, die Datentabelle Denkweise besser zu verstehen!Reclassify wählen Spalten in Datentabelle
Eine ähnliche Frage wurde gestellt here! Die Lösung scheint jedoch darin zu bestehen, entweder nur eine Spalte oder alle Spalten umzuordnen. Meine Frage ist einzigartig für einige ausgewählte Spalten.
### 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]
Jede Hilfe wäre willkommen. Meine Daten sind groß und deshalb ist es notwendig, reguläre Ausdrücke zu verwenden, um einen Vektor von Spaltennummern zu erstellen, die neu klassifiziert werden müssen.
Vielen Dank für Ihre Zeit.
+1 das wars !! Ok, da meine Antwort falsch ist, werde ich sie löschen. –
Nein nicht tun, habe ich gelernt, dass Trick ('.SDCols') mit Ihnen so ... – dickoa
(+1) direkt' passieren kann index' auch. 'Data [, C (Index): = lapply (.SD, as.character), .SDcols = index]' – Arun