下面的R代码的三行显示了Vector A1,B1和" C1",这是字段A1的唯一。我想显示两个列的数据框柱子。简而言之,说一个带有" y"列的数据框,其中" c1"中的字母" a"将被表示6次背对背(字符串A1的长度),然后是" B" 6次,然后是C等。也对应于另一列中的一个," 1" 6次,然后" 2" 6次,依此类推。请帮忙,谢谢。
a1 = c("a","b","c","d","a","b")
b1 = c(1,2,3,4,1,2)
c1 = unique(a1)
新更改
a1 = c("a","b","b","d","c","e","f","a","b","c","d")
b1 = c(1,1,1,2,3,2,3,1,1,3,2)
c1 = unique(a1)
a1
和 b1
必须合并到一个data.frame 之前 unique()
函数被应用。否则,向量的长度不同。
DF <- data.frame(a1, b1)
unique(DF)[rep(1:nrow(unique(DF)), each = nrow(DF)), ]
对于第一个数据集
a1 = c("a","b","c","d","a","b")
b1 = c(1,2,3,4,1,2)
结果是:
a1 b1 1 a 1 1.1 a 1 1.2 a 1 1.3 a 1 1.4 a 1 1.5 a 1 2 b 2 2.1 b 2 2.2 b 2 2.3 b 2 2.4 b 2 2.5 b 2 3 c 3 3.1 c 3 3.2 c 3 3.3 c 3 3.4 c 3 3.5 c 3 4 d 4 4.1 d 4 4.2 d 4 4.3 d 4 4.4 d 4 4.5 d 4
组成24行(a1
乘以a1
的长度为6中的4个唯一值)
请注意,这与User124123的答案不同,该答案具有36行(length(b1)
倍length(a1)
由rep(b1, each = length(a1))
引起。
第二个数据集
a1 = c("a","b","b","d","c","e","f","a","b","c","d")
b1 = c(1,1,1,2,3,2,3,1,1,3,2)
结果由66行(6个唯一值时间11)组成。(简短省略输出)。
这实现了您所要求的我所相信的:
cbind(rep(c1, each = length(a1)),rep(b1, each = length(a1)))