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