List 我可以使用R中的列表作为列数不等的数据帧的代理吗?
就List 我可以使用R中的列表作为列数不等的数据帧的代理吗?,list,r,data-structures,List,R,Data Structures,就R中的数据帧而言,我的理解是它必须是矩形的。不可能有列长度不等的数据帧。我可以使用R中的列表s来实现这一点吗?这种方法的优缺点是什么?您可以使用列表来存储任何您想要的内容,甚至是数据帧或其他列表!您确实可以指定不同的长度向量,甚至可以指定完全不同的对象。它提供了与数据帧相同的功能,您可以使用美元符号进行索引: > fooList <- list(a=1:12, b=1:11, c=1:10) > fooList$a [1] 1 2 3 4 5 6 7 8
R
中的数据帧而言,我的理解是它必须是矩形的。不可能有列长度不等的数据帧。我可以使用R
中的列表
s来实现这一点吗?这种方法的优缺点是什么?您可以使用列表来存储任何您想要的内容,甚至是数据帧或其他列表!您确实可以指定不同的长度向量,甚至可以指定完全不同的对象。它提供了与数据帧相同的功能,您可以使用美元符号进行索引:
> fooList <- list(a=1:12, b=1:11, c=1:10)
> fooList$a
[1] 1 2 3 4 5 6 7 8 9 10 11 12
> fooDF <- data.frame(a=1:10, b=1:10, c=1:10)
> fooDF$a
[1] 1 2 3 4 5 6 7 8 9 10
以及结构和打印方法:
> fooList
$a
[1] 1 2 3 4 5 6 7 8 9 10 11 12
$b
[1] 1 2 3 4 5 6 7 8 9 10 11
$c
[1] 1 2 3 4 5 6 7 8 9 10
> fooDF
a b c
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
6 6 6 6
7 7 7 7
8 8 8 8
9 9 9 9
10 10 10 10
简单地说,数据帧是一个矩阵,是一个容器的列表
一个列表意味着把各种各样的东西放在一起,数据框是常用的数据格式(每行一个主题/案例,每列一个变量)。它被用于很多分析中,允许对一个主题的分数进行索引,可以更容易地转换和其他事情
但是,如果列的长度不等,那么我怀疑数据中的每一行都类似于主题/案例。在这种情况下,我想您不需要太多数据帧的功能
如果每一行都类似于主题/案例,那么您应该使用
NA
查找任何缺少的值,并使用数据框。数据框实际上不是矩阵。它更像是一种特殊的列表,具有一些类似于矩阵的属性。您可以通过as.list(fooDF)
来说明这一点。它也保留其类似于列表的属性fooDF[n]
返回包含第n个元素的较小数据框,而fooDF[[n]]
将基础列作为向量返回您也可以使用列表作为数据框列。
> fooList
$a
[1] 1 2 3 4 5 6 7 8 9 10 11 12
$b
[1] 1 2 3 4 5 6 7 8 9 10 11
$c
[1] 1 2 3 4 5 6 7 8 9 10
> fooDF
a b c
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
6 6 6 6
7 7 7 7
8 8 8 8
9 9 9 9
10 10 10 10