как создать г матрицу или таблицу из данных - PullRequest
2 голосов
/ 16 февраля 2012

Мой формат данных в 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 столбца.

Ответы [ 3 ]

4 голосов
/ 16 февраля 2012

Вы можете использовать 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
0 голосов
/ 16 февраля 2012

Использование read.delim из Vincent выше и изменение формыНе так элегантно ...

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
0 голосов
/ 16 февраля 2012

Вы можете сделать это с помощью read.table. Вы можете получить помощь в выборе правильных параметров, набрав ?read.table в вашем R-GUI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...