如何给命令多个数字并输出多个对象 R

How do I give a command multiple numbers and output multiple objects R

我想做类似的事情

range <- c(1,100,250, 500, 1000)
hdbscan_object{1:5} <- hdbscan(DF1, minPts = range)

而不是:

hdbscan_object1 <- hdbscan(DF1, minPts = 1)
hdbscan_object2 <- hdbscan(DF1, minPts = 100)
hdbscan_object3 <- hdbscan(DF1, minPts = 250)
hdbscan_object4 <- hdbscan(DF1, minPts = 500)
hdbscan_object5 <- hdbscan(DF1, minPts = 1000)

这是 list2env 的一个选项。使用 lapply 遍历 'range' 向量,应用函数,将输出存储在 list ('lst1') 中,命名为 list 并使用 list2env 在全局环境中创建这些对象

lst1 <- lapply(range, function(x) hdbscan(DF1, minPts = x))
names(lst1) <- paste0("hdbscan_object", seq_along(lst1))
list2env(lst1, .GlobalEnv)

或者另一种选择是 assignfor 循环中

for(i in seq_along(range)) {
     assign(paste0("hdbscan_object", i), 
           hdbscan(DF1, minPts = range[i]))
  }