我在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))