从列表提取中删除级别到数据帧

时间:2013-05-27 10:03:17

标签: r dataframe levels

我有一个像这样的数据框

    df <- data.frame(letters=letters[1:5], numbers=seq(1:5))

并且假设我想将第一列列为列表

firstColumn <- df[,1]

>  firstColumn[[1]]
[1] a
Levels: a b c d e

Problème是我想要删除级别以获得字符串

有什么帮助吗?

感谢

3 个答案:

答案 0 :(得分:5)

从头开始将变量定义为字符:

df <- data.frame(letters=letters[1:5], numbers=seq(1:5), stringsAsFactors=FALSE)

之后转换它:

firstColumn <- as.character(df[,1])

答案 1 :(得分:2)

如果我理解你的问题,那你就试图转换为角色。

尝试

as.character(firstColumn[[1]])

答案 2 :(得分:0)

如果需要列表但没有级别,请首先将数据框的列作为矢量导入,然后将其转换为列表。这里是一线:

firstColumn_list <- as.list(as.vector(df[,1]))

您还可以使用软件包drop.levels中的gdata函数:

firstColumn_list <- as.list(df[,1])
firstColumn_list_wo_levels <- gdata::drop.levels(firstColumn_list)