[英]How to call the factor level of a variable for each observation, and use those values to create a new variable in R?
我有一個具有10個級別的分類變量hospital_code
的數據集。
我正在運行的程序遍歷並獲取數據的子集,以便變量compLbl
包含10個hospital_code中的2個,以便可以將它們相互比較。 我現在遇到一種情況,在每個循環中,我需要compLbl進行二進制編碼(1和0)。
如果僅從第一個循環獲取子集數據,在該循環中compLbl的可能值為AMH
和BJH
,則可以輕松地執行以下操作:
nData$compLbl2 = with(nData,(ifelse(compLbl == "AMH", 1,0)))
並獲取如下所示的數據:
head(nData)
compLbl outLbl Race_Code Age Complexity_Subclass_Code compLbl2
1 AMH 0 W 63 1 1
2 AMH 0 W 44 2 1
3 AMH 0 W 88 3 1
4 BHC 0 W 64 1 0
5 BHC 0 W 61 2 0
6 BHC 0 W 61 1 0
我該如何概括一下,以便無論compLbl
有兩個值,它都將對其進行二進制編碼? 我的想法是可能通過參考因子級別1來獲取因子變量compLbl中存在的兩個值。 像這樣:
nData$compLbl2 = with(nData,(ifelse(FACTORLEVEL(compLbl) == 1, 1,0)))
在我上面的示例中, FACTORLEVEL(compLbl)
對於AMH
將返回1,對於BHC
將返回2,因為這是R將自動分配的因子水平。 但是,我不確定如何執行此操作,或者是否可行。
我將使用以下命令:
nData <- within(nData, compLbl2 = rev(as.numeric(compLbl[drop = TRUE]) -1))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.