簡體   English   中英

如何為 R 中的列中的字符分配數值?

[英]How do I assign numerical values to characters in a column in R?

我在 R 中導入了一個表 (.cvs),其中有一列收入,其中收入為<=50K>50K

>str(hausuebung_daten$income)
 chr [1:500] "<=50K" "<=50K" ">50K" "<=50K" ">50K" "<=50K" "<=50K" "<=50K" ">50K" "<=50K" ">50K" ">50K" ...

現在我正在嘗試將此列從字符轉換為數字。 我已經能夠將其轉換為因子

> hausuebung_daten$income<-factor(hausuebung_daten$income)
> str(hausuebung_daten$income)
 Factor w/ 2 levels "<=50K",">50K": 1 1 2 1 2 1 1 1 2 1 ...

然后嘗試為因子分配一個數值(使用 plyr 包)

library(plyr)
> hausuebung_daten$income<-revalue(hausuebung_daten$income, "1"="<=50000", "2"=>"50000")
Error: unexpected '>' in "hausuebung_daten$income<-revalue(hausuebung_daten$income, "1"="<=50000", "2"=>"

我收到了如上所示的錯誤消息。

您可以使用ifelse()來執行此操作,因為您只是在處理"<=50K"">50K"

hausuebung_daten$income <- ifelse(hausuebung_daten$income == ">50K", 2, 1)
> hausuebung_daten$income
 [1] "<=50K" "<=50K" ">50K"  "<=50K" ">50K"  "<=50K" "<=50K" "<=50K"
 [9] ">50K"  "<=50K" ">50K"  ">50K" 
> hausuebung_daten$income <- ifelse(hausuebung_daten$income == ">50K", 2, 1)
> hausuebung_daten$income
 [1] 1 1 2 1 2 1 1 1 2 1 2 2

我想以下內容可能適合您的目的:

hausuebung_daten$income <- factor(hausuebung_daten$income,labels = c(1,2))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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