我在R中创建数据帧,如下所示。
else
等
但是我需要在从长度5到15开始的循环中动态创建它 对于从5到15的列长度的数据帧。
有没有办法做到这一点?所有数据帧都只是字符
由于 Tanmay
答案 0 :(得分:1)
我们可以使用lapply
执行此操作,以创建list
data.frames
。最好将其保留在list
中,而不是在全局环境中创建多个对象。
i1 <- 5:15
lst <- lapply(i1, function(x) data.frame(setNames(replicate(x,character(0)),
paste0("C", seq_len(x))), stringsAsFactors = FALSE))
names(lst) <- paste0("len", i1)
如果程序需要从全局环境中获取对象
list2env(lst, .GlobalEnv)
str(len5)
#'data.frame': 0 obs. of 5 variables:
# $ C1: chr
# $ C2: chr
# $ C3: chr
# $ C4: chr
# $ C5: chr