在 R 中的循环中引用索引对象的名称



当R使用它来命名for循环中的列和列表时,R如何报告实际名称i

例如,使用以下数据:

z <- data.frame(x= c(1,2,3,4,5), y = c("a", "b", "v", "d", "e"))

当我在创建列时从循环中引用i时,它将其命名为i列名称。

a_final <- NULL
for(i in z$x){
print(data.frame(i = z$y))
}

相反,我希望按循环中每个i的值来命名列。

我希望结果看起来像这样:

1 2 3 4 5 6
a a a a a a
b b b b b b 
c c c c c c
d d d d d d
e e e e e e

您可以使用与nrow(z)相同的z$y和维度的数据创建一个矩阵,并将其转换为数据帧。

as.data.frame(matrix(z$y, ncol = nrow(z), nrow = nrow(z)))
#  V1 V2 V3 V4 V5
#1  a  a  a  a  a
#2  b  b  b  b  b
#3  c  c  c  c  c
#4  d  d  d  d  d
#5  e  e  e  e  e

我们也可以使用replicate

as.data.frame(replicate(nrow(z), z$y))

最新更新