我尝试将一列与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
有人可以帮我这个吗?谢谢。
答案 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()