Tôi muốn thay đổi lớp biến được chọn trong bảng dữ liệu, sử dụng thao tác được vector. Tôi mới vào cú pháp data.table, và đang cố gắng tìm hiểu càng nhiều càng tốt. Tôi bây giờ câu hỏi là cơ bản, nhưng nó sẽ giúp tôi hiểu rõ hơn cách suy nghĩ của bảng dữ liệu!Phân loại lại các cột được chọn trong Bảng dữ liệu
Câu hỏi tương tự đã được hỏi here! Tuy nhiên, giải pháp dường như liên quan đến việc phân loại lại chỉ một cột hoặc tất cả các cột. Câu hỏi của tôi là duy nhất cho một vài cột được chọn.
### 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]
Mọi trợ giúp sẽ được đánh giá cao. Dữ liệu của tôi lớn và do đó, sử dụng cụm từ thông dụng để tạo vectơ các số cột để phân loại lại là cần thiết.
Cảm ơn bạn đã dành thời gian.
+1 đó là nó !! Ok, kể từ khi câu trả lời của tôi là không chính xác tôi sẽ xóa nó. –
Không, tôi đã học được mẹo đó ('.SDCols') với bạn ... – dickoa
(+1) bạn có thể trực tiếp truyền' chỉ mục'. 'data [, c (index): = lapply (.SD, as.character), .SDcols = index]' – Arun