看板 R_Language 關於我們 聯絡資訊
※ 引述《empireisme (empireisme)》之銘言: : 如題 : 在做資料分析的時候 會常遇到需要 as.factor 或是 as.numeric的操作 : 比如說我的column總共有26行 : 第一行叫a 第二行叫b 依此類推 : 如果我想要把第一到第10行都轉成numeric : 我只好笨笨的 : df$a<- as.numeric(df$a) : df$b<- as.numeric(df$b) : df$c<- as.numeric(df$c) : 像這樣做實在超笨的 : 有沒有可能利用APPLY或是其他方式 : 讓我一次性的把指定的行數 給他一個數列 例如 c(1,4,5,6,7,8) : 就自動把指定的行數轉成as.numeric 或是as.factor的結果 : 還是我必須要自己寫一個函數呢QQ 我會建議用data.table,像是下面這樣做 library(data.table) DT <- data.table(CO2) str(DT) # Classes ‘data.table’ and 'data.frame': 84 obs. of 5 variables: # $ Plant : Ord.factor w/ 12 levels "Qn1"<"Qn2"<"Qn3"<..: 1 1 1 1 1 1 1 2 2 2 ... # $ Type : Factor w/ 2 levels "Quebec","Mississippi": 1 1 1 1 1 1 1 1 1 1 ... # $ Treatment: Factor w/ 2 levels "nonchilled","chilled": 1 1 1 1 1 1 1 1 1 1 ... # $ conc : num 95 175 250 350 500 675 1000 95 175 250 ... # $ uptake : num 16 30.4 34.8 37.2 35.3 39.2 39.7 13.6 27.3 37.1 ... # - attr(*, ".internal.selfref")=<externalptr> to_char_cols <- c("Plant", "Type", "Treatment") DT[ , eval(to_char_cols) := lapply(.SD, as.character), .SDcols = to_char_cols] str(DT) # Classes ‘data.table’ and 'data.frame': 84 obs. of 5 variables: # $ Plant : chr "Qn1" "Qn1" "Qn1" "Qn1" ... # $ Type : chr "Quebec" "Quebec" "Quebec" "Quebec" ... # $ Treatment: chr "nonchilled" "nonchilled" "nonchilled" "nonchilled" ... # $ conc : num 95 175 250 350 500 675 1000 95 175 250 ... # $ uptake : num 16 30.4 34.8 37.2 35.3 39.2 39.7 13.6 27.3 37.1 ... # - attr(*, ".internal.selfref")=<externalptr> -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.170.73 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1582601742.A.DE4.html
empireisme: 推 02/27 19:46
JuanMaestrow: 用mutate_at(c(column names),~as.numeric(.)) 02/29 21:22