如何在 R 中组织 data.frame 的行
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
我想通过使用两个值向量在 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