将列表连接到矢量中

时间:2016-11-15 12:06:35

标签: r list vector

我想使用a,b,c重复每个字母三次创建以下向量:

BB<-c("a","a","a","b","b","b","c","c","c")

这是我的代码:

Alphabet<-c("a","b","c")
AA<-list()
for(i in 1:3){
  AA[[i]]<-rep(Alphabet[i],each=3)
}
BB<-do.call(rbind,AA)

但是我得到了一个数据帧:

    dput(BB)
structure(c("a", "b", "c", "a", "b", "c", "a", "b", "c"), .Dim = c(3L, 
3L))

我做错了什么?

4 个答案:

答案 0 :(得分:1)

正如Akrun所说,我们可以使用相同的rep功能 创建一个由字母a,b,c

组成的向量
A <- c("A","B","C")

对同一个向量应用rep函数,将每个用作子函数

AA <- rep(A,each=3)

print(AA)

[1] "A" "A" "A" "B" "B" "B" "C" "C" "C"

答案 1 :(得分:1)

您应该使用c函数来连接,而不是rbind。这会给你矢量。

Alphabet<-c("a","b","c")
AA<-list()
for(i in 1:3){
  AA[[i]]<-rep(Alphabet[i],each=3)
}
BB<-do.call(c,AA)

Akrun评论也是如此,如果那就是你想要的。

答案 2 :(得分:1)

你也可以像这样连接rep函数: BB <- c(rep("a", 3), rep("b", 3), rep("c", 3))

答案 3 :(得分:0)

这是一个解决方案,但请注意此表单或追加对大型输入数组无效

Alphabet <- c("a","b","c")
bb <- c()
for (i in 1:length(Alphabet)) {
  bb <- c(bb, rep(Alphabet[i], 3))
}