嗨~大家晚安,前幾篇有提到for迴圈的用法,今天來談apply的用法
lapply()代表list apply用法在於對列表的每個組件執行給定的函數返回另一個列表。
lapply可以很方便地把list數據集進行循環操作。
好吧,恩君承認這樣說連恩君自己都不知道在打甚麼
剛好最近受安茲大人的委託,必須去鄰國里·耶斯提傑王國進行情報收集
透過人口,城鎮分佈來利用R做一下調查
王國 <- list(pop = 7853000,
boroughs = c("耶·蘭提爾", "卡恩村", "卡茲平原", "都武大森林", "八本指"),
capital = FALSE)
for(info in 王國) {print(class(info))}
[1] "numeric"
[1] "character"
[1] "logical"
輸入for()我們可以知道裡面有包含數字,字串,還有logical
另一個方法就是透過lapply直接可以更快的知道資料的結構,避免使用過多繁瑣的code
lapply(王國, class)
$`pop`
[1] "numeric"
$boroughs
[1] "character"
$capital
[1] "logical"
同樣的假設我們想要資到字元的長度,替換掉class改成nchar(number of character)
耶蘭提爾王國 <- c("耶·蘭提爾", "卡恩村", "卡茲平原", "都武大森林", "八本指")
lapply(耶蘭提爾王國, nchar)
[[1]]
[1] 5
[[2]]
[1] 3
[[3]]
[1] 4
[[4]]
[1] 5
[[5]]
[1] 3
注意到這邊是會變成list的方式,我們也可以用unlist的方式把它變成vector
耶蘭提爾王國 <- c("耶·蘭提爾", "卡恩村", "卡茲平原", "都武大森林", "八本指")
unlist(lapply(耶蘭提爾王國, nchar))
[1] 5 3 4 5 3