Re: [問題] as.factor()和factor()

看板R_Language作者 (JX)時間9年前 (2015/03/31 22:21), 編輯推噓3(302)
留言5則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《LouisPion (府城好男兒)》之銘言: : : - 問題: 當你想要問問題時,請使用這個類別 : : [問題類型]: : : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : : [軟體熟悉度]: : : 入門(寫過其他程式,只是對語法不熟悉) : : [問題敘述]: : 請簡略描述你所要做的事情,或是這個程式的目的 : factor()可以將字串或整數向量弄成因子, : 而as.factor()告訴R把物件視作因子,我不太清楚二者的差別... : 具體的問題是,什麼時候用factor,什麼時候用as.factor? : 不好意思,請教版上先進~ : [程式範例]: : y = c(-1, 1, -1, -1, 1) : names(y) = seq(1, 5, 1) : factor(y) : as.factor(y) : # 不僅顯示的結果一樣, : # class(y)、typeof(y)、mode(y)結果也一樣 : [關鍵字]: : : 因子、factor、as.factor : 提供一些小例子 或許有助了解 例如 我手上的觀測值分成五大類如下 >Data$Type [1] TNBC HER2+ Luminal-A Luminal-B Normal Levels: HER2+ Luminal-A Luminal-B Normal TNBC 如果我依照Type去畫Boxplot時 R就會按照levels的順序(字母排序) 即 HER2+ Luminal A Luminal B Normal TNBC 由左而右畫Boxplot 但是因為一些臨床上的特性 我需要他的排序是按照 Normal Luminal-A Luminal-B TNBC HER2+ 的類別排列 如果用factor就可以更動level 也可以只取特定的類別的資料 如下 > Data$Type<- factor(Data$Type, levels=c("Normal","Luminal-A","Luminal-B", "TNBC","HER2+")) > Data$Type [1] TNBC HER2+ Luminal-A Luminal-B Normal Levels: Normal Luminal-A Luminal-B TNBC HER2+ > Subtype<- factor(Data$Type, levels=c("Luminal A","Luminal B","TNBC","HER2+")) > Subtype [1] TNBC HER2+ Luminal A Luminal B <NA> Levels: Luminal A Luminal B TNBC HER2+ 像這樣 資料本身次序沒有更動 卻可以更改畫圖以及其他指令等等的次序 也可以只畫特定目標 雖然基本卻很好用 as.factor()就不能做到了 只能用as.factor() 而不能用factor() 的情況 好像比較少見 我自己印象中不太有 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.37.133 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1427811718.A.EFD.html

03/31 22:27, , 1F
不是少見,是沒有,如我推文所說,as.factor是
03/31 22:27, 1F

03/31 22:28, , 2F
factor的簡化版,認真給推!!
03/31 22:28, 2F

03/31 22:37, , 3F
這很實用。謝謝分享。
03/31 22:37, 3F

03/31 23:30, , 4F
謝謝分享
03/31 23:30, 4F

04/01 08:59, , 5F
實用推!
04/01 08:59, 5F
文章代碼(AID): #1L6gs6xz (R_Language)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1L6gs6xz (R_Language)