用r中的DF制作矩阵
因此,我有一张看起来像这样的表格,
name <- c("AGTC","ATTC","ATGC", "ATCC")
Var1 <- c("TRA11","TRA8","TRA9", "TRA9")
Var2 <- c("TRB1", "TRB15", "TRB7", "TRB7")
df <-data.frame(name, Var1, Var2)
df
name Var1 Var2
1 AGTC TRA11 TRB1
2 ATTC TRA8 TRB15
3 ATGC TRA9 TRB7
4 ATCC TRA9 TRB7
我想要一个这样的矩阵,这样我就可以绘制一个
TRA11 TRA8 TRA9
TRB1 1 0 0
TRB15 0 1 0
TRB7 0 0 2
我设法修复矩阵的Circos情节,但我不知道如何填充值,
A <- sort(unique(unlist(strsplit(paste(df$Var1, collapse=","), ","))))
B <- sort(unique(unlist(strsplit(paste(eee$Var2, collapse=","), ","))))
mat <- matrix(nrow = length(A), ncol = length(B))
colnames(mat) <- B
rownames(mat) <- A
mat
TRA11 TRA8 TRA9
TRB1 0 0 0
TRB15 0 0 0
TRB7 0 0 0
我将不胜感激。
多谢
So I have a table that looks something like this
name <- c("AGTC","ATTC","ATGC", "ATCC")
Var1 <- c("TRA11","TRA8","TRA9", "TRA9")
Var2 <- c("TRB1", "TRB15", "TRB7", "TRB7")
df <-data.frame(name, Var1, Var2)
df
name Var1 Var2
1 AGTC TRA11 TRB1
2 ATTC TRA8 TRB15
3 ATGC TRA9 TRB7
4 ATCC TRA9 TRB7
I want a matrix like this so I can plot a circos plot
TRA11 TRA8 TRA9
TRB1 1 0 0
TRB15 0 1 0
TRB7 0 0 2
I managed to fix start with the matrix but I have no idea how to fill the values in,
A <- sort(unique(unlist(strsplit(paste(df$Var1, collapse=","), ","))))
B <- sort(unique(unlist(strsplit(paste(eee$Var2, collapse=","), ","))))
mat <- matrix(nrow = length(A), ncol = length(B))
colnames(mat) <- B
rownames(mat) <- A
mat
TRA11 TRA8 TRA9
TRB1 0 0 0
TRB15 0 0 0
TRB7 0 0 0
I would appreciate any help.
Thanks a lot
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
因此,我设法这样做,
它像魅力一样工作。
谢谢大家
So I managed to do it this way,
and it worked like a charm.
Thanks guys
如果您希望它作为数据框架:
If you want it as a dataframe: