如何通过循环将集合添加到数据帧?

时间:2019-01-03 12:30:44

标签: r loops dataframe

我有一些包含数字的集合,分别命名为k1,k2,k3,k4 ... k20。现在,我想基于它们创建一个数据框。我将如何循环?我目前的想法是

k1 <- c(1,2,3)
k2 <- c(2,3,4)
k3 <- c(4,5,6)
...
k20<- c(3,4,5)
i <- 1
df1 <- c()
which (i <= parameter){
df1 <- dataframe(df1,ki)
i = i+1
}
#What I want to do is build different size of dataframe by given a parameter
#when parameter = 15 then df1 <- dataframe (k1,k2,k3...,k15)
# when parameter = 12 then df1 <- dataframe (k1,k2,k3...,k12)

但是没有用。谁能给我一些有关该怎么做的提示?谢谢

1 个答案:

答案 0 :(得分:2)

您可以将LifecycleOwnerls一起使用,以获取以pattern开头的对象,然后使用k将对象子集化,并使用1:n对向量进行排序根据它们的名称(以避免mixedsortk11之前被拾取)并放置所有这一个数据帧。

k2

数据

library(gtools)

n = 5
object_name <- mixedsort(ls(pattern = "^k"))[1:n]
data.frame(mget(object_name))

#  k1 k2 k3 k4 k5
#1  1  2  4  3  3
#2  2  3  5  4  4
#3  3  4  6  5  5

n = 2
object_name <- mixedsort(ls(pattern = "^k"))[1:n]
data.frame(mget(object_name))

#  k1 k2
#1  1  2
#2  2  3
#3  3  4