如何为 R 中列中的字符分配数值?

  • 本文关键字:分配 字符 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))

最新更新