クラスを失うことなく、データ テーブル内のすべての値を変換したいと考えています。
アイリスデータセットを使用した例
library(datasets)
library(dplyr)
data(iris)
iris <- iris %>% as.data.table()
iris[2:3, 5] <- "SeToSa"
iris %>% str
iris2 <- copy(iris)
iris <- iris[, lapply(.SD, function(x)(tolower(x)))]
また
iris2 <- iris2[, lapply(.SD, function(x)(ifelse(is.factor(x), tolower(x), x)))]
iris %>% str
ただし、これらの試行のいずれも、各列のクラスを維持できません。さらに、属性が存在する場合は属性を失います。
要するに、各列の特性 (クラス、属性) を失うことなく、データ テーブルでlapplyを使用できる方法はありますか?