如何在R中创建具有动态列长度的数据帧

时间:2017-12-29 07:07:48

标签: r dataframe

我在R中创建数据帧,如下所示。

else

但是我需要在从长度5到15开始的循环中动态创建它 对于从5到15的列长度的数据帧。

有没有办法做到这一点?所有数据帧都只是字符

由于 Tanmay

1 个答案:

答案 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