Re: [问题] 将多个data frame放入list进行操作

楼主: Wush978 (拒看低质媒体)   2014-01-29 19:06:15
:
: 另外请问list与array的差别是?
:
一般来说,R 的数值物件都是向量,
ex:
```
x <- pi
show(x)
length(x)
dim(x)
```
这表示x 是一个长度1 的向量。
向量加上dimension的概念后就变成array
ex:
```
dim(x) <- c(1,1)
show(x)
class(x)
dim(x) <- c(1,1,1)
show(x)
class(x)
dim(x)
```
以上述为例,x 是个数值向量,而matrix, array本质上也是数值向量。
你只要拿掉dim 之后就变回去了。
但是 list 不一样,
list 是装着一堆R物件的向量。所以list里面可以放任何东西,如:
- 数值
- matrix
- array
- data.frame ( ps. data.frame的本质是 list, 和array/matrix差别很多 )
- list
- 函数
ex:
```
x <- list()
x[[1]] <- pi
x[[2]] <- iris
x[[3]] <- Sys.time
x[[3]]()
```
list 和 一般的向量最大的不同,就在于list可以装不一样的物件。
以字串和数值为例,你没办法让一个向量同时有数值和字串:
```
x <- 1:10
show(x)
x[10] <- "10"
show(x)
```
同理,matrix和array也有同样的状况
```
x <- matrix(1:10, 5, 2)
show(x)
x[1,2] <- "6"
show(x)
```
但是list没有这样的限制:
```
class(iris[,1])
class(iris[,5])
```
这也是为什么data.frame的底层是list, 而不能用一般的向量的缘故。
作者: clickhere (It's time to go home.)   2014-01-29 22:57:00
注: list和data.frame本身是向量.
作者: ireullin (raison detre)   2014-02-08 22:35:00
谢谢您详细的解说,这样我懂list的概念了

Links booklink

Contact Us: admin [ a t ] ucptt.com