→ clansoda: 第一個問題如果是data.table的格式的話 04/22 22:43
→ clansoda: dat[S.L >= 10, S.L := S.L / 10] 04/22 22:44
→ andrew43: 學一下怎麼用 subset 04/22 22:46
→ clansoda: 太久沒用data.frame我還真的忘記怎麼subset了XDD 04/22 22:51
→ clansoda: 我看了一下,應該是dat[dat$S.L >= 10, dat$S.L] / 10 -> 04/22 22:56
→ clansoda: dat[dat$S.L, dat$S.L] 04/22 22:56
→ clansoda: 不知道我這樣對不對,很久沒做了 有錯跟我說一下 04/22 22:56
→ smallpigpi: C大,A大那句應該是在跟我說XD 04/22 23:18
→ smallpigpi: 謝謝A大的提點,也謝謝C大幫忙,雖然我跑不出來,應 04/22 23:18
→ smallpigpi: 該是因為我是用data.frame 04/22 23:18
→ smallpigpi: 不知為何我的data.table啟動不了,看起來是下載成功了 04/22 23:19
→ clansoda: 看不太出來你的error message出了啥問題 04/23 00:03
→ clansoda: 噢Sor, 我的那個寫錯了 後面assign的那邊 你也要給他 04/23 00:05
→ clansoda: 大於10的指令 所以後面的assign是dat[dat$S.L >=10, 04/23 00:05
→ clansoda: dat$S.L] 04/23 00:06
→ clansoda: 這樣跑跑看呢? 04/23 00:06
→ smallpigpi: 好像還是一樣_(:3 」∠)_ 04/23 00:13
> -------------------------------------------------------------------------- <
作者: celestialgod (天) 看板: R_Language
標題: Re: [問題] 挑出某些條件的數值做整理
時間: Sat Apr 22 23:06:35 2017
※ 引述《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
※ 編輯: celestialgod (125.224.97.253), 04/22/2017 23:10:14
推 smallpigpi: 謝謝大大指點,不過不知為何我啟動不了data.table 04/22 23:26
推 smallpigpi: 我原本是使用data.frame處理,也只學到這裡XD 04/22 23:29
→ smallpigpi: 除了data.table其它方法大概還啃不下。 04/22 23:29
→ smallpigpi: 還是非常感謝 04/22 23:29
→ clansoda: 額,你知道有些library不是內建的嗎 04/22 23:57
→ clansoda: 你得install.packages("data.table") 04/22 23:58
推 smallpigpi: 知道XD,圖片裡第一行有下載一次 04/23 00:04
→ clansoda: 我看到了 04/23 00:06