将列表类型转换为R中的数据框类型,data.frame和as.data.frame不会出现问题

时间:2016-06-14 06:58:51

标签: r list dataframe

我在R中创建了带有命令data.frame的A,但是A的数据类型是" list",我已经尝试使用as.data.frame将A转换为数据框但是它工作,其他人有相同的经验吗?代码如下:

A <- data.frame(rep(1,5), row.names=c("A","B","C","D","E"), check.rows = FALSE, check.names = FALSE)
mode(A)
A1 <- as.data.frame(A)
mode(A1)

1 个答案:

答案 0 :(得分:2)

由于data.framelist,每个list元素(column)的长度相同,mode会返回list。我们可以使用

class(A)
#[1] "data.frame"

is.data.frame(A)
#[1] TRUE

来自@ RHertel的作品

is.list(A)  
#[1] TRUE

str(A)
#'data.frame':   5 obs. of  1 variable:
# $ rep(1, 5): num  1 1 1 1 1

dput(A)

确认data.frame也是list

但是,list也可以有相同的长度而不是data.frame

l1 <- as.list(1:5)
mode(l1)
#[1] "list"
class(l1)
#[1] "list"