数据框架修改



下面的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)

a1b1必须合并到一个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)))

最新更新