R:字符变量在cbind()和data.frame()之后变为数字

时间:2015-08-19 02:13:21

标签: r character numeric

我尝试将一列与data.frame组合在一起。我使用了cbind()和data.frame(),但之后字符变量变成了数字变量。

>is.character(new_listing_zip)
[1] TRUE
> new_race_disp_use2 <- cbind(new_listing_zip,opo_trans) 
> is.character(new_race_disp_use2$new_listing_zip)
[1] FALSE

> is.character(new_listing_zip)
[1] TRUE
> new_race_disp_use2 <- data.frame(new_listing_zip,opo_trans) 
> is.character(new_race_disp_use2$new_listing_zip)
[1] FALSE

有人可以帮我这个吗?谢谢。

1 个答案:

答案 0 :(得分:1)

如果您检查data.frame()的帮助文件,我想您会找到答案

 ?data.frame

您需要设置

options(stringsAsFactors = TRUE)

全局更改或仅为

设置参数
stringsAsFactors = TRUE

在声明data.frame时,假设这些是实际的字符串。否则,我只是在加入时将你的变量声明为一个因子

new_race_disp_use2 <- cbind(factor(new_listing_zip),opo_trans)

现在当然,如果您的'因素'实际上是您想要的字符串(在您的示例中看似邮政编码),您需要将邮政编码设置为字符串以使用引号开头(即“12345”或者在构建data.frame之后设置数据类型

 new_race_disp_use$new_listing_zip <- as.character(new_race_disp$new_listing_zip)

as.factor(varName) 

或只是

factor() instead of as.character()