我具有以下数据功能:
myfunc <- function(ncluster_no = NULL) {
set.seed(1)
# ncluster_no <- "Cluster1"
df <- mtcars[sample(10)[1:3], ]
my_list <- list(foo = df)
names(my_list) <- ncluster_no
my_list
}
myfunc(ncluster_no = "Cluster1")
产生此命名对象(数据帧)
#> $Cluster1
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#> Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#> Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
当我在lapply
中使用该功能时:
clusters <- c(
"Cluster_1",
"Cluster_2")
list_out <- lapply(clusters, myfunc)
我得到这个结果:
[[1]]
[[1]]$Cluster_1
mpg cyl disp hp drat wt qsec vs am gear carb
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
[[2]]
[[2]]$Cluster_2
mpg cyl disp hp drat wt qsec vs am gear carb
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
我想要得到的是简单的命名:
$Cluster_1
mpg cyl disp hp drat wt qsec vs am gear carb
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
$Cluster_2
mpg cyl disp hp drat wt qsec vs am gear carb
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
我该如何实现?还是我需要在myfunc
中进行任何修改?
答案 0 :(得分:1)
将setOffset(){
this.offsetLeft = document.getElementById("myId").offsetLeft;
}
与sapply
一起使用,如果不想使用simplify = F
,则不要在函数中返回命名列表:
Cluster_1$Cluster_1
哪个会返回:
myfunc <- function(ncluster_no = NULL) {
set.seed(1)
df <- mtcars[sample(10)[1:3], ]
df
}
clusters <- c("Cluster_1", "Cluster_2")
sapply(clusters, myfunc, simplify = F)
这里最重要的是,该函数返回一个数据框,而不是包含一个数据框的命名列表。如果这样做,则还可以使用$Cluster_1
mpg cyl disp hp drat wt qsec vs am gear carb
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
$Cluster_2
mpg cyl disp hp drat wt qsec vs am gear carb
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
或其他方法(请参见下面有关l <- setNames(lapply(1:2, myfunc), clusters)
的评论中Ronak Shah的建议,等等),结果将是相同的,因为其中的名称replicate
并未真正发挥该功能的作用。