簡體   English   中英

R:dplyr-使用重新編碼功能時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM