將 data.frame 的所有列轉換為字元類
一個常見的任務是將 data.frame 的所有列轉換為字元類以便於操作,例如在將 data.frames 傳送到 RDBMS 或合併 data.frames 的情況下,其中包含輸入 data.frames 之間級別可能不同的因素。。
這樣做的最佳時間是讀入資料時 - 幾乎所有建立資料幀的輸入方法都有一個 stringsAsFactors
選項,可以設定為 FALSE
。
如果已建立資料,則可以將因子列轉換為字元列,如下所示。
bob <- data.frame(jobs = c("scientist", "analyst"),
pay = c(160000, 100000), age = c(30, 25))
str(bob)
'data.frame': 2 obs. of 3 variables: $ jobs: Factor w/ 2 levels "analyst","scientist": 2 1 $ pay : num 160000 100000 $ age : num 30 25
# Convert *all columns* to character
bob[] <- lapply(bob, as.character)
str(bob)
'data.frame': 2 obs. of 3 variables: $ jobs: chr "scientist" "analyst" $ pay : chr "160000" "1e+05" $ age : chr "30" "25"
# Convert only factor columns to character
bob[] <- lapply(bob, function(x) {
if is.factor(x) x <- as.character(x)
return(x)
})