Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R数据帧中的层次索引_R_Csv_Dataframe - Fatal编程技术网

R数据帧中的层次索引

R数据帧中的层次索引,r,csv,dataframe,R,Csv,Dataframe,我有一个CSV文件,我正试图读入R中的数据帧中,我想知道如何使用分层索引来存储它。换句话说,我想用列名制作如下内容: ('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,

我有一个CSV文件,我正试图读入R中的数据帧中,我想知道如何使用分层索引来存储它。换句话说,我想用列名制作如下内容:

('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 ||
_________________________________________________
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
结果是这样的:

('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 ||
_________________________________________________
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

当转换为R数据帧时。我该怎么做呢?虽然我对Python中的Pandas数据帧非常熟悉,但我还是新手。谢谢

我不太愿意回答这个问题,但这是说明我所说内容的唯一方法。在R中,我们将采用您提供的分层数据,并按如下方式存储:

('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 ||
_________________________________________________
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
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

如果您有更多的组或级别,则需要添加更多列,并根据需要复制以前的列。

您显示的内容不适合data.frame。它应该是一个嵌套列表。我不能帮你更多的忙,因为我不明白你的输入看起来是什么样子……或者一个融化的“长”数据帧。这不是一件事。框架是扁平的方形数据框。你可以考虑使用列表,但这实际上取决于你将如何处理这些数据。所以在R中没有这样的选项?我不确定data.frames是否是平面的。@Roland我将编辑我的帖子,让它更清晰。这正好回答了我的问题,我的问题措辞很糟糕。非常感谢。