[英]R: dplyr- error in using recode function
我是R的新手,正在嘗試將序數變量重新編碼為數值。 我有一個名為'Founders_previous_company_employee_count'的變量,具有3個不同的條目作為輸入-(“ Small”,“ Medium”,“ Large”),分別將其記錄為1,2,3值。 我嘗試使用下面的代碼從plyr包中使用重值功能
startupfull$employee_count_code<-as.numeric(revalue(startupfull$Founders_previous_company_employee_count,c("Small"=1, "Medium"=2, "Large"=3)))
效果很好。 但是,我嘗試在dplyr包中使用recode函數,但收到錯誤消息。
碼:
startupfull$prevcomp_empcount_code <- as.numeric(recode(startupfull$Founders_previous_company_employee_count,c("Small"=1, "Medium"=2, "Large"=3)))
錯誤-錯誤:必須指定所有替換項
我在這里做錯了什么?
作為對以上Aramis7d答案的評論,這會更合適,但我沒有足夠的聲譽來發表評論。
如果在閱讀完這些答案后仍然有人感到困惑(就像我以前那樣),則忽略了這樣的事實,即最好使用joel.wilson建議的as.numeric()和factor()來完成對數字的重新編碼。如果重新編碼為非數字值,則可以避免在使用dplyr的recode()時將一組重新編碼對包裝在c()中。
也就是說,代替此:
startupfull$prevcomp_empcount_code <-
as.numeric(recode(startupfull$Founders_previous_company_employee_count,
c("Small"=1, "Medium"=2, "Large"=3)))
只需執行以下操作:
startupfull$prevcomp_empcount_code <-
as.numeric(recode(startupfull$Founders_previous_company_employee_count,
"Small"=1, "Medium"=2, "Large"=3))
對於給定的輸入為
dput(x)
c("Small", "Large", "Medium", "Large")
嘗試
as.numeric(recode(x, "Small" = "1", "Medium" = "2", "Large" = "3"))
x = c("Small", "Large", "Medium", "Large")
as.numeric(factor(x, levels = c("Small", "Medium", "Large")))
[1] 1 3 2 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.