[英]R: check multiple data.frame based on duplicated rows and re-organize data
[英]How to organize rows of a data.frame in R
我想通过使用两个值向量来在R中构建3x3 data.frame:x值向量(xr)和y值向量(yr)。 xr具有3个值,yr具有9个值。
这是我的例子:
xr<-c(1,2,3)
yr<-c(4,4,4,5,5,5,6,6,6)
db<-data.frame(x=xr,y=yr)
产生的data.frame如下:
> db
x y
1 4
2 4
3 4
1 5
2 5
3 5
1 6
2 6
3 6
但是,我希望data.frame像这样:
> db
x y
1 4
1 4
1 4
2 5
2 5
2 5
3 6
3 6
3 6
最简单的方法是使用另一个xr,并使用x值的显式序列,如下所示:
xr<-c(1,2,3,1,2,3,1,2,3)
但是,我正在寻找一种使用与第一个示例相同的xr来创建此类data.frame的方法。
任何帮助深表感谢!
这只是rep
函数的each
参数的问题。 它的名称恰如其分。
db<-data.frame(x= rep(xr, each = 3) ,y=yr)
db
x y
1 1 4
2 1 4
3 1 4
4 2 5
5 2 5
6 2 5
7 3 6
8 3 6
9 3 6
为了捕获游程长度的任何可能差异以及rep()
您可能需要rle()
data.frame(x = rep(xr, rle(yr)$lengths), y = yr)
为了显示我的意思,请按如下所示使用zr
。 它具有不同的游程长度(即它们并非全部为3)。
zr <- c(4, 4, 4, 5, 5, 6)
data.frame(x = rep(xr, rle(zr)$lengths), z = zr)
# x z
# 1 1 4
# 2 1 4
# 3 1 4
# 4 2 5
# 5 2 5
# 6 3 6
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.