将列表转换为R中的矩阵

时间:2015-02-25 16:50:47

标签: r list matrix transform

我想将以下数据从csv文件转换为矩阵: 初始csv数据:

A,B
A,B
A,c
B,D
B,E

... 基质

  A B C D E
A 0 2 1 0 0
B 0 0 0 1 1
C....
D...
E....

我很确定在使用任何特定包时可能有一些简单的方法可以做到这一点。任何想法或链接?

先感谢社区

3 个答案:

答案 0 :(得分:1)

您在寻找table吗?

dta <- read.table(text='A,B
A,B
A,c
B,D
B,E', sep=',')

table(dta)
##    V2
## V1  B c D E
##   A 2 1 0 0
##   B 0 0 1 1

答案 1 :(得分:0)

好像你正在寻找一个包含每组数量的数据透视表?我可能更容易在excel中创建数据透视表并将其加载到R

答案 2 :(得分:0)

您可以使用文件中的名称初始化空矩阵,然后填充它:

data=read.csv("filename", header=F)
names = as.character(unique(unlist(data)))
nnames = length(names)

mm = matrix(0, ncol=nnames, nrow=nnames, dimnames=list(names, names))
for (rr in 1:nrow(data)) {
    e1 = as.character(data[rr,1])
    e2 = as.character(data[rr,2])
    mm[e1, e2] = mm[e1, e2] + 1
}