2014-06-20 3 views
1

У меня есть файл CSV, который я пытаюсь прочитать в dataframe в R, и мне было интересно, как я могу его хранить с иерархической индексацией. Другими словами, я хочу сделать что-то с именами столбцов, как это:Иерархическая индексация в R dataframe

('a1', 'b1', 'c1'), ('a1', 'b1', 'c2'), ('a1', 'b1', 'c3'), ('a1', 'b1', 'c4'), 
('a1', 'b2', 'c1'), ('a1', 'b2', 'c2'), ('a1', 'b2', 'c3'), ('a1', 'b2', 'c4'), 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 

очередь, как это:

_________________________________________________ 
||      a1      || 
_________________________________________________ 
||   b1   ||   b2   || 
_________________________________________________ 
|| c1 | c2 | c3 | c4 || c1 | c2 | c3 | c4 || 
_________________________________________________ 
|| 1 | 2 | 3 | 4 || 5 | 6 | 7 | 8 || 
|| 9 | 10 | 11 | 12 || 13 | 14 | 15 | 16 || 
|| 17 | 18 | 19 | 20 || 21 | 22 | 23 | 24 || 
_________________________________________________ 

Когда преобразованный в R dataframe. Как именно я буду заниматься этим? Я новичок в R, хотя я хорошо знаком с кадром данных Pandas в Python. Спасибо

+0

То, что вы показываете, не вписывается в data.frame. Он должен быть вложенным списком. Не могу помочь вам больше, потому что я не понимаю, как выглядит ваш ввод. – Roland

+0

... или расплавленный «длинный» кадр данных. – joran

+0

Это не вещь. Data.frames представляют собой плоские квадратные поля данных. Вы можете использовать списки, но это зависит от того, как вы собираетесь обрабатывать эти данные. – MrFlick

ответ

1

Я смущаюсь ответить на этот вопрос, но это единственный способ проиллюстрировать то, о чем я говорю. В R, мы бы иерархические данные, как то, что вы предоставили и хранить его, как это:

df <- data.frame(grp1 = 'a1', 
       grp2 = rep(c('b1','b2'),each = 4), 
       grp3 = rep(c('c1','c2','c3','c4'),times = 2)) 
> df 
    grp1 grp2 grp3 
1 a1 b1 c1 
2 a1 b1 c2 
3 a1 b1 c3 
4 a1 b1 c4 
5 a1 b2 c1 
6 a1 b2 c2 
7 a1 b2 c3 
8 a1 b2 c4 

Если у вас есть дополнительные группы, или уровни, вы бы добавить несколько столбцов и повторить предыдущие столбцы по мере необходимости.

+0

Это точно отвечает на мой вопрос, который был плохо сформулирован. Спасибо. – weskpga

Смежные вопросы