[英]how to create r matrix or table from data
我在csv中的數據格式如下。 我想使用此文件為熱圖創建矩陣。 我要使用R gglot。
A B C 1 apple 3 2 book 5 4 bag 1 9 desk 4 10 apple 8 11 book 66 14 desk 2
我想使用上面的文件為熱圖創建矩陣。
1 2 4 9 10 11 14
apple 3 0 0 0 8 0 0
book 0 5 0 0 0 66 0
bag 0 0 1 0 0 0 0
desk 0 0 0 4 0 0 2
我在初始文件中還有另一列可以訂購。
A B C D 1 apple 3 4 2 book 5 1 4 bag 1 2 9 desk 4 3 10 apple 8 4 11 book 66 1 14 desk 2 3
由於此D排序列,如何訂購矩陣? 或者我想按1-14列的總和排序。
您可以使用xtabs
。
d <- read.delim(textConnection("
A B C
1 apple 3
2 book 5
4 bag 1
9 desk 4
10 apple 8
11 book 66
14 desk 2
"), sep=" ")
xtabs(C ~ B + A, d)
A
B 1 2 4 9 10 11 14
0 0 0 0 0 0 0
apple 3 0 0 0 8 0 0
bag 0 0 1 0 0 0 0
book 0 5 0 0 0 66 0
desk 0 0 0 4 0 0 2
您可以使用read.table
做到這一點。 通過在R-GUI中鍵入?read.table
可以獲得有關選擇正確參數的幫助。
使用上面Vincent的read.delim部分和重塑方法。 不那么優雅...
d <- read.delim(textConnection("
A B C
1 apple 3
2 book 5
4 bag 1
9 desk 4
10 apple 8
11 book 66
14 desk 2
"), sep=" ")
Var1 <- rep(d[,1], d[,3])
Var2 <- rep(d[,2], d[,3])
d <- data.frame(Var1=Var1, Var2=Var2)
d <- cast(melt(d), Var2~value)
> d
Var2 1 2 4 9 10 11 14
1 apple 3 0 0 0 8 0 0
2 bag 0 0 1 0 0 0 0
3 book 0 5 0 0 0 66 0
4 desk 0 0 0 4 0 0 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.