0
我想將數據表中的所有值轉換而不丟失其類。使數據表中的所有值降低而不丟失類
使用所述 虹膜數據實施例設置
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在數據表不失特性的任何方式(類,屬性),每列的?
如果這是你需要做的一個因素'tolower(levels(x))' –
你的問題不是關於data.table。爲什麼你在你的問題中使用dplyr也是一個謎題(你正在減少可能的答案)。你的問題是關於'tolower',它被記錄爲返回類字符向量,以及如何將它應用於因子變量的水平。 – Roland
他可能已經添加了'dplyr'包以便能夠使用'pipe operator'。儘管一個謹慎。將「tolower」函數應用於因子水平只會改變因子水平。這將爲所創建的新關卡返回「NA」。最好的選擇是處理字符並將其改變爲因素:'factor(tolower(x))' – Onyambu