【发布时间】:2015-04-27 18:55:08
【问题描述】:
我想将以下数据从 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....
我很确定可能有一些简单的方法可以做到这一点,而无需使用任何特定的包。任何想法或链接?
提前感谢社区
【问题讨论】:
我想将以下数据从 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....
我很确定可能有一些简单的方法可以做到这一点,而无需使用任何特定的包。任何想法或链接?
提前感谢社区
【问题讨论】:
你在找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
【讨论】:
您似乎正在寻找一个包含每组计数的数据透视表?我可能更容易在 excel 中创建数据透视表并将其加载到 R
【讨论】:
您可以使用文件中的名称初始化一个空矩阵,然后填充它:
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
}
【讨论】: