首页 > 解决方案 > 如何给命令多个数字并输出多个对象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)

标签: rcommand

解决方案


这是一个选项list2env。循环使用 'range' 向量lapply,应用函数,将输出存储在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]))
  }

推荐阅读