r - 函数唯一更改R中data.frame中列的数据类型
问题描述
假设我有一个数据框,并获取一列的 unqiue 值:
df = data.frame(a = c(1,2,3,4), b = c('1','2','3','x'))
b = unique(df$b)
> b
[1] 1 2 3 x
Levels: 1 2 3 x
当我尝试连接唯一向量 b 和附加值时:
c(b, 'xx')
它返回
> c(b, 'xx')
[1] "1" "2" "3" "4" "xx"
有没有办法在数据框中获取原始值?像:
[1] "1" "2" "3" "x" "xx"
解决方案
我们可以转换为character
然后连接以避免强制转换为factor
“b”的整数存储值
c(as.character(unique(b$b)), 'xx')
#[1] "1" "2" "3" "x" "xx"
或者在创建时data.frame
,使用stringsAsFactors = FALSE
(默认情况下是TRUE
)避免将带有字符元素的列转换为factor
类
df <- data.frame(a = c(1,2,3,4), b = c('1','2','3','x'), stringsAsFactors = FALSE)
现在,OP的代码可以工作了
c(unique(b$b), 'xx')