[英]R How to convert a numeric into factor with predifined labels
labs = letters[3:7]
vec = rep(1:5,2)
如何獲得水平為“ c”,“ d”,“ e”,“ f”,“ g”的因子?
您可以執行以下操作:
labs = letters[3:7]
vec = rep(1:5,2)
factorVec <- factor(x=vec, levels=sort(unique(vec)), labels = c( "c", "d", "e", "f", "g"))
我對unique(vec)
進行了排序,以使結果一致。 unique()
將根據元素的首次出現返回唯一值。 通過指定順序,代碼將變得更加健壯。
同樣,通過同時指定級別和標簽,我認為代碼將變得更具可讀性。
編輯
如果使用?factor
查看文檔,則會發現:
等級
x可能采用的值的可選向量(作為字符串)。 默認值是as.character(x)所采用的唯一值集,並按x的升序排序。 請注意,可以將此集合指定為小於sort(unique(x))
因此,您可以注意到因子派系本身內部進行了一些排序。 但是我認為應該添加級別信息,以使代碼更具可讀性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.