gpt4 book ai didi

r - 将列表矩阵转换为 data.frame

转载 作者:行者123 更新时间:2023-12-01 23:29:13 27 4
gpt4 key购买 nike

我有这个结构 tbl具有以下形式:

> tbl

a_1 a_2 a_3
[1,] "L" "14" "L"
[2,] "L" "62" "D"
[3,] "H" "0" "L"

这是一个矩阵,实际上:
> class(tbl)
[1] "matrix"

但是当我尝试将其更改为 data.frame 时, df 的所有条目仅显示数据类型,如下所示:
>as.data.frame(tbl, nrow = length(tbl[,1]), ncol = 3, byrow = TRUE)

a_1 a_2 a_3
<list> <list> <list>
<chr[1]> <chr[1]> <chr[1]>
<chr[1]> <chr[1]> <chr[1]>
<chr[1]> <chr[1]> <chr[1]>

我尝试了多种选择,但似乎都不起作用,包括:
data.frame(rows=rownames(tbl)[row(tbl)],vars=colnames(tbl)[col(tbl)], values=c(tbl))
但是当我尝试使用它时收到一个错误。我想要结果 data.frame采取以下形式:
a_1           a_2         a_3
<char> <chr> <char>
"L" "14" "L"
"L" "62" "D"
"H" "0" "L"

我寻找了类似的问题,但找不到任何有同样问题的人。任何建议都会有很大帮助!
dput(tbl)

structure(list("L", "L", "H", "14", "62", "0", "L", "D", "L"), .Dim = c(3L, 3L), .Dimnames = list(NULL, c("a_1", "a_2", "a_3")))


str(tbl)

List of 9
$ : chr "L"
$ : chr "L"
$ : chr "H"
$ : chr "14"
$ : chr "62"
$ : chr "0"
$ : chr "L"
$ : chr "D"
$ : chr "L"
- attr(*, "dim")= int [1:2] 3 3
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:3] "a_1" "a_2" "a_3"

最佳答案

试试这个单线:

as.data.frame(apply(tbl, 2, unlist))

或这个:
tbl2 <- unlist(tbl)
attributes(tbl2) <- attributes(tbl)
DF <- as.data.frame(tbl2)

关于r - 将列表矩阵转换为 data.frame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473686/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com