我想要做的是将值1分配给my数据的前1/3,然后将值2分配给我数据的第二个1/3观察值,最后将值3分配给第三个1/3的观察数据。
考虑到我的数据由30个观察结果组成的ccount,我做了以下代码:
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分配给数据的前1/3,将值2分配给第二个1/3,将值3分配给第三个1/3?
致以最诚挚的问候,
答案 0 :(得分:1)
是的,请尝试查看cut()
。为了说明一下,请尝试使用您的示例:
cut(yourDataAsNumeric,3,labels=FALSE)
答案 1 :(得分:1)
您可以使用
sort(rep_len(seq(3), length(c1)))
其中c1
是你的向量。