Re: [問題] 挑出某些條件的數值做整理

看板R_Language作者 (天)時間8年前 (2017/04/22 23:06), 8年前編輯推噓3(306)
留言9則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《smallpigpi (一勺子)》之銘言: : [問題類型]: : 程式詢問(我想用R 做某件事情,但我不知道怎麼用R寫出來) : [軟體熟悉度]: : 超級新手(沒寫過程式,R 是我的第一次) : [問題敘述]: : S.L S.W P.L P.W Species : 49.0 30.0 14.000 2.0 setosa : 5.6 2.9 3.600 1.3 versicolor : 6.8 3.2 5.900 2.3 virginica : 我想請問 : 如何挑出大於10的數值把它除於10 : 以及如何把每個數值統一顯示小數點後一位 : 謝謝各位大大 : (手機排版,不知道會不會亂掉) # data.table做法: library(data.table) irisDT <- data.table(iris) irisDT[ , lapply(.SD, function(x){ if (is.numeric(x)) { ifelse(x > 10, x / 10, x) } else return(x)})] # dplyr做法: library(dplyr) irisDT %>% mutate_if(is.numeric, funs(ifelse(. > 10, . / 10, .))) # base函數解法: evalExpr <- lapply(names(irisDT)[sapply(irisDT, is.numeric)], function(x) bquote(ifelse(.(as.symbol(x)) > 10, .(as.symbol(x)) / 10, .(as.symbol(x))))) do.call(function(...) transform(irisDT, ...), evalExpr) 看一下這篇: https://www.ptt.cc/bbs/R_Language/M.1492181442.A.5B4.html 統一顯示小數點後一位的話: print(iris, digits = 2) -- R資料整理套件系列文: magrittr #1LhSWhpH (R_Language) https://goo.gl/72l1m9 data.table #1LhW7Tvj (R_Language) https://goo.gl/PZa6Ue dplyr(上.下) #1LhpJCfB,#1Lhw8b-s (R_Language) https://goo.gl/I5xX9b tidyr #1Liqls1R (R_Language) https://goo.gl/i7yzAz pipeR #1NXESRm5 (R_Language) https://goo.gl/zRUISx -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.224.97.253 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1492873599.A.0AD.html

04/22 23:26, , 1F
謝謝大大指點,不過不知為何我啟動不了data.table
04/22 23:26, 1F

04/22 23:26, , 2F

04/22 23:29, , 3F
我原本是使用data.frame處理,也只學到這裡XD
04/22 23:29, 3F

04/22 23:29, , 4F
除了data.table其它方法大概還啃不下。
04/22 23:29, 4F

04/22 23:29, , 5F
還是非常感謝
04/22 23:29, 5F
給一個最簡單的方法: for (nn in names(irisDT)[sapply(irisDT, is.numeric)]) iris[[nn]] <- ifelse(iris[[nn]] > 10, iris[[nn]] / 10, iris[[nn]])

04/22 23:57, , 6F
額,你知道有些library不是內建的嗎
04/22 23:57, 6F

04/22 23:58, , 7F
你得install.packages("data.table")
04/22 23:58, 7F

04/23 00:04, , 8F
知道XD,圖片裡第一行有下載一次
04/23 00:04, 8F

04/23 00:06, , 9F
我看到了
04/23 00:06, 9F
※ 編輯: celestialgod (125.224.97.253), 04/23/2017 01:32:32
文章代碼(AID): #1O-t5_2j (R_Language)
文章代碼(AID): #1O-t5_2j (R_Language)