0

我想要做的是将值 1 分配给我的数据的前 1/3 观察值,然后将值 2 分配给我的数据的第二个 1/3 观察值,最后将值 3 分配给第三个 1/3对我的数据的观察。

考虑到我的数据包含 30 个观察值,我执行了以下代码:

c1 <- c(rep(1,10),rep(2,10),rep(3,10))

我绑定到我的数据

gala2 <- cbind(data,c1)

然后,对于前 10 个观察值(我的第一个 1/3),c1 的值为 1,对于接下来的 10 个观察值(第二个 1/3),c1 的值为 2,对于最后 10 个观察值(我的第三个 1/ 3) c1 的值为 3。

这工作得很好,但我想问是否有办法以更“抽象”的方式做到这一点。也就是告诉R给数据的第一个1/3赋值1,给第二个1/3赋值2,第三个1/3赋值3?

此致,

4

2 回答 2

1

您可以使用

sort(rep_len(seq(3), length(c1)))

c1你的向量在哪里。

于 2013-12-01T19:53:43.660 回答
1

是的,有,试着看看cut()。为了说明一点,用你的例子试试这个:

cut(yourDataAsNumeric,3,labels=FALSE)
于 2013-12-01T19:40:06.410 回答