這裏有一些方法,看看有什麼的split(calculations..)
結果是:
class(split(mtcars$mpg, mtcars$cyl))
typeof(split(mtcars$mpg, mtcars$cyl))
mode(split(mtcars$mpg, mtcars$cyl))
storage.mode(split(mtcars$mpg, mtcars$cyl))
# str() Shows the structure of the object. It gives an small summary of it.
str(split(mtcars$mpg, mtcars$cyl))
您也可以與列表assing的一個新對象,並使用以前的功能
cars_ls <- split(mtcars$mpg, mtcars$cyl)
class(cars_ls)
typeof(cars_ls)
mode(cars_ls)
# and
str(cars_ls)
# List of 3
# $ 4: num [1:11] 22.8 24.4 22.8 32.4 30.4 33.9 21.5 27.3 26 30.4 ...0
# $ 6: num [1:7] 21 21 21.4 18.1 19.2 17.8 19.7
# $ 8: num [1:14] 18.7 14.3 16.4 17.3 15.2 10.4 10.4 14.7 15.5 15.2 ...
詢問它到目前爲止,很明顯,對象拆分返回是一個列表。在這種情況下,列表cars_ls
有3個數字向量。 您可以通過幾種方式爲列表建立索引。這裏有些例子。顯然,這裏沒有矩陣。
# Using $[backquote][list name][back quote]
cars_ls$`4`
# Including names using [
cars_ls[1]
# No names using [[
cars_ls[[1]]
編輯 從技術上講,列表是矢量也。這裏有一些更多的功能來檢查你有什麼類型的對象。
is.vector(cars_ls)
# [1] TRUE
is.matrix(cars_ls)
# [1] FALSE
is.list(cars_ls)
# [1] TRUE
is.data.frame(cars_ls)
# [1] FALSE
至於什麼不公開呢:
un_ls <- unlist(cars_ls)
mode(un_ls)
storage.mode(un_ls)
typeof(un_ls)
class(un_ls)
is.vector(un_ls)
# [1] TRUE
is.list(un_ls)
# [1] FALSE
un_ls
是一個數值向量,顯然不是一個列表。所以unlist()
抓取一個列表並將其列出。
你可以找到這些功能在R Language Definition
這是一個列表,如文檔中所述:''split'返回的值是包含組值的 的向量列表。 ' – Dason