R 当向量长度不是所需总长度的倍数时,重复向量
我有一个1666行的数据帧。我想添加一个重复序列为R 当向量长度不是所需总长度的倍数时,重复向量,r,seq,rep,R,Seq,Rep,我有一个1666行的数据帧。我想添加一个重复序列为1:5的列,用于cut()进行交叉验证。它看起来是这样的: Y x1 x2 Id1 1 .15 3.6 1 0 1.1 2.2 2 0 .05 3.3 3 0 .45 2.8 4 1 .85 3.1 5 1
1:5
的列,用于cut()
进行交叉验证。它看起来是这样的:
Y x1 x2 Id1
1 .15 3.6 1
0 1.1 2.2 2
0 .05 3.3 3
0 .45 2.8 4
1 .85 3.1 5
1 1.01 2.9 1
... ... ... ...
我尝试了以下两种方法,但得到了一条错误消息,因为它似乎只以完整seq()
参数的增量添加数字:
> tr2$Id1 <- rep(seq(1,5,1), (nrow(tr2)/5))
Error in `$<-.data.frame`(`*tmp*`, "Id", value = c(1, 2, 3, 4, 5, 1, 2, :
replacement has 1665 rows, data has 1666
> tr2$Id1 <- rep(seq(1,5,1), (nrow(tr2)/5) + (nrow(tr2)%%5))
Error in `$<-.data.frame`(`*tmp*`, "Id", value = c(1, 2, 3, 4, 5, 1, 2, :
replacement has 1670 rows, data has 1666
像这样的东西
df <- data.frame(rnorm(1666))
df$cutter <- rep(1:5, length.out=1666)
tail(df)
rnorm.1666. cutter
1661 0.11693169 1
1662 -1.12508091 2
1663 0.25441847 3
1664 -0.06045037 4
1665 -0.17242921 5
1666 -0.85366242 1
df使用rep()
的length.out
参数
下面是一个使用内置数据集cars的示例
str(cars)
'data.frame': 50 obs. of 2 variables:
$ speed: num 4 4 7 7 8 9 10 10 10 11 ...
$ dist : num 2 10 4 22 16 10 18 26 34 17 ...
添加分组列:
cars$group <- rep(1:3, length.out=50)
head(cars)
speed dist group
1 4 2 1
2 4 10 2
3 7 4 3
4 7 22 1
5 8 16 2
6 9 10 3
tail(cars)
speed dist group
45 23 54 3
46 24 70 1
47 24 92 2
48 24 93 3
49 24 120 1
50 25 85 2