在R中列出列表中的列表名称?

时间:2017-09-26 13:51:53

标签: r list

对于这个神秘的标题感到抱歉。

然而,它很简单。我有一个包含多个列表的列表,例如:

list1 <- c(1,2,3,4,5,6,7,8,9,10)
list2 <- c(2,3,4,5,6,7,8,9,10,11)
list3 <- c(3,4,5,6,7,8,9,10,11,12)

dataset <- list(list1, list2, list3)

所以,如果我想做一些循环,它可能看起来像:

for (data in dataset) {
    mean(data)
}

但是,根据数据集列表中的列表数量,可能知道计算出的平均值属于哪个列表。所以原则上我想说:

for (data in dataset) {
    print(name-of-list-inside-dataset-list)
    mean(data)
}

可以这样做,还是......?

3 个答案:

答案 0 :(得分:1)

首先设置列表元素的名称: 从@Hanjo Jo'burg Odendaal无耻地偷走了

dataset <- list("one" = list1, "two" = list2, "three" = list3)

然后打印名称并表示:(不需要包装并且快速闪电)

lapply(seq_along(dataset),function(x){
    paste("Name:", names(dataset[x]),"Mean:", mean(dataset[[x]]))
})

答案 1 :(得分:0)

这可以完成,您所要做的就是命名列表:

list1 <- c(1,2,3,4,5,6,7,8,9,10)
list2 <- c(2,3,4,5,6,7,8,9,10,11)
list3 <- c(3,4,5,6,7,8,9,10,11,12)

dataset <- list("one" = list1, "two" = list2, "three" = list3)

names(dataset)

我的建议是使用purrr代码解决您的问题:

library(purrr)
dataset %>% map(mean)

答案 2 :(得分:0)

这看起来很适合nameslapply函数。 for方便地将相同的函数应用于列表的每个元素,从而绕过list1 <- c(1,2,3,4,5,6,7,8,9,10) list2 <- c(2,3,4,5,6,7,8,9,10,11) list3 <- c(3,4,5,6,7,8,9,10,11,12) dataset <- list(list1, list2, list3) names(dataset) <- c("list1", "list2", "list3") lapply(dataset, mean) $list1 [1] 5.5 $list2 [1] 6.5 $list3 [1] 7.5 循环。

storeEmployee(employes: Employees){
  return this.http.post('http://###.com/api/employees/PostEmployee?empId=1&name='+employes.name+'&job='+employes.job+'&email='+employes.email+'&isActive='+employes.isActive+'&mobile='+employes.mob+'&councilMember='+employes.isMember+'&jobId=1', employes );
}