Re: [問題] 將多個data frame放入list進行操作

看板R_Language作者 (拒看低質媒體)時間10年前 (2014/01/29 19:06), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
: : 另外請問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, 而不能用一般的向量的緣故。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.70.185

01/29 22:57, , 1F
註: list和data.frame本身是向量.
01/29 22:57, 1F

02/08 22:35, , 2F
謝謝您詳細的解說,這樣我懂list的概念了
02/08 22:35, 2F
文章代碼(AID): #1IwE2hR_ (R_Language)
文章代碼(AID): #1IwE2hR_ (R_Language)