我想在R中使用lapply。
此外,我的功能如下所示:
func_countries <- function(x){
Country <- x
Nrow <- nrow(data[which(data$country == x),])
Res <- list(Country, Nrow)
return(Res)}
Overview_countries <- unlist(lapply(countries_list, func_countries))
如何将lapply的结果显示在矩阵中,我可以将其用于进一步的计算?我尝试了以下但是没有用,因为数字不是数字加上我不能使用例如&#39; $&#39;选择列。
Overview_countries <- matrix(Overview_countries, nrow=2, dimnames=list(c('Country', 'Numb_obs')))
Overview_countries <- t(Overview_countries)
答案 0 :(得分:1)
你的方法不一定是最好的方法;正如@akrun所说,数据框似乎比矩阵更合适,像dplyr
和data.table
这样的包可以更优雅地执行这些聚合。
但是要回答你的问题:你可以使用byrow
参数来获得你(可能)想要的东西。
我创建了一个小向量a
,它应该类似于您使用的unlist(lapply(
的输出。
a <- list(list('Belgium',25), list('Holland', 89), list('UK', 784))
a <- unlist(a)
res <- matrix(a, nrow=3, byrow=TRUE, dimnames=list(NULL, c('Country', 'Numb_obs')))
输出:
Country Numb_obs
[1,] "Belgium" "25"
[2,] "Holland" "89"
[3,] "UK" "784"