我想创建一个数据框,其列是多个向量的连续元素,所有向量具有相同的长度。例如,使用向量p
和q
p=c(13,27,35,47)
q=c(800,700,600,400)
我想构建一个数据框
df=data.frame(q1=q[1],q2=q[2],q3=q[3],q4=q[4],p1=p[1],p2=p[2],p3=p[3],p4=p[4])
难点在于矢量的长度是在运行时确定的,因此它可以是4
,如示例中所示,或5
,6
等。我想要数字和要在运行时自动更新的列的名称,而不必每次都重写data.frame
赋值语句。那是可行的吗?
答案 0 :(得分:1)
我们可以将其放在list
中并转换为data.frame
d1 <- data.frame(as.list(c(q,p)))
names(d1) <- c(paste0('q', seq_along(q)), paste0('p', seq_along(p)))
或使用as.data.frame.list
d2 <- cbind(as.data.frame.list(q), as.data.frame.list(p))
我们还可以使用make.unique
来命名列
make.unique(rep(c('q', 'p'),lengths(list(q,p))))