我想在不丢失类的情况下转换数据表中的所有值。
使用iris数据集的示例
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而不会丢失每一列的特征(类、属性)?