我想使用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))
我做错了什么?
答案 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))
}