使用条件为列分配编号

时间:2017-02-28 15:46:38

标签: r

假设我有一个df,

<preference name="phonegap-version" value="cli-6.X.X" />

我想将{1}列的第1和第2列随机分配到每一行。

此列中数字1的百分比为60%,2为40%。

但是组列不会更改数据框的顺序。

df = data.frame(matrix(rnorm(20), nrow=10))
df$group <- rep(NA,nrow(df)) # add one col

我怎样才能以优雅的方式使用R?

1 个答案:

答案 0 :(得分:2)

您可以使用sample()随机选择带有权重的数字。如果您希望平均数字具有特定分布,则可以使用

df$group <- sample(1:2, nrow(df), replace=T, prob=c(.6, .4))

如果您需要&#34;确切&#34;,您可以使用

num1 <- round(nrow(df)*.6, 0)
df$group <- sample(c(rep(1, num1), rep(2, nrow(df)-num1)))