下面是一个非常简化的示例,但应该演示我正在尝试解决的问题
df <- tibble(
id = rep(1:5,3),
m1 = rnorm(15),
m2 = rnorm(15),
m3 = rnorm(15),
m4 = rnorm(15),
m5 = rnorm(15)
)
我想操作一个小标题并最终根据变量名称得到单独的小标题。我可以跑
list <- c("m1", "m2", "m3", "m4", "m5")
for (i in 1:length(list)){
name <- list[i]
name <- df %>%
select(id, all_of(name))
}
这显然会覆盖循环每个周期的名称。我的目标结果是 5 个 tibbles,每个 tibbles 都调用列表中的相应值。是否可以获取名称的值而不是“名称”本身作为操作的左侧?
编辑
小标题的实际操作不是选择单个列,这就是为什么我没有使用
sapply
或类似的。最终目标是编写一个 Excel 文件,其中每个 tibble 都是一个单独的表。我现在已将代码扩展为:
list <- c("m1", "m2", "m3", "m4", "m5")
list2 <- NA
for (i in 1:length(list)){
name <- list[i]
sheet <- df %>%
select(id, all_of(name))
list2[i] <- list(name=sheet)
}
我认为命名列表元素可能更容易,但列表中的“名称”似乎被忽略了。