【问题标题】:function unique change the data type of columns in data.frame in R函数唯一更改R中data.frame中列的数据类型
【发布时间】:2020-02-10 17:15:02
【问题描述】:

假设我有一个数据框,并获取一列的唯一值:

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"

【问题讨论】:

  • @akrun 是的,我已经更正了。

标签: r dataframe unique


【解决方案1】:

我们可以转换为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')

【讨论】:

    猜你喜欢
    • 2014-12-15
    • 2017-05-09
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    相关资源
    最近更新 更多