如何将列表转换为矩阵?
在R I具有类型“列表”的对象k:如何将列表转换为矩阵?
> k
[,1] [,2] [,3] [,4]
[1,] "aa" "cg" "cg" "tt"
[2,] "ag" "gg" "gt" "tt"
> dim(k)
[1] 2 4
> typeof(k)
[1] "list"
我想变换像例如字符的矩阵P
> p
[,1] [,2] [,3] [,4]
[1,] "aa" "cg" "gc" "tt"
[2,] "ag" "gg" "gt" "tt"
> dim(p)
[1] 2 4
> typeof(p)
[1] "character"
matrix()和as.matrix()似乎没有做这项工作。实际上,k是一个矩阵()调用应用到vapply()调用结果的结果。
或者
p <- as.character(k)
dim(p) <- dim(k)
typeof(p)
## [1] "character"
dim(p)
## [1] 2 4
假设这是k
:
k <- structure(list("aa", "cg", "cg", "tt", "ag", "gg", "gt", "tt"),
.Dim = c(2L, 4L))
谢谢David。这个工作,当我做手工,但是当我把这些行放入函数 – user1479670 2014-09-22 13:35:59
@ user1479670,不知道你的意思。什么时候不工作? – 2014-09-22 13:45:21
在创建k之后,当我在函数结尾处放置行'p user1479670 2014-09-22 13:51:39
你可以使用存储模式storage.mode<-
。
使用大卫的数据,k
k <- structure(list("aa", "cg", "cg", "tt", "ag", "gg", "gt", "tt"),
.Dim = c(2L, 4L))
typeof(k)
# [1] "list"
storage.mode(k) <- "character"
typeof(k)
# [1] "character"
dim(k)
# [1] 2 4
is.matrix(k)
# [1] TRUE
dput(k)
# structure(c("aa", "cg", "cg", "tt", "ag", "gg", "gt", "tt"), .Dim = c(2L,
# 4L))
你能使用'dput'并粘贴输出即。 'dput(head(k))' – akrun 2014-09-22 10:56:46
@akrun:所需的输出是'structure(c(“aa”,“ag”,“cg”,“gg”,“cg”,“gt”,“tt”, “tt”),.Dim = c(2L, 4L))' – user1479670 2014-09-22 13:42:52
谢谢,你从David Arenburg,agstudy得到了一些很好的答案。 – akrun 2014-09-22 16:47:27