如何将每个观察值随机分配给两个标签之一

How to randomly assign each observation to one of two labels

我在 R 中有一个数据矩阵如下:

     [,1] [,2]
[1,]    1    4
[2,]    1    3
[3,]    0    4
[4,]    5    1
[5,]    6    2
[6,]    4    0

现在我想将每个观察值随机分配给 1 或 0 集群。基本上我正在尝试做 Kmeans 并且在此之前我想将每个观察初始化到某个集群。

我想在 R 中使用 sample 函数。但我不确定 sample 会如何给出这个。样本函数是从集合中获取样本。

有人可以指导吗?

您可以通过以下方式使用样本生成0或1的随机序列:

sample(c(0,1), size = nrow(data), replace = TRUE)

要将此添加到您的矩阵中,您可以使用 cbind(),所以也许像这样的东西可以满足您的要求:

data = matrix(data = 1:6, ncol = 2, nrow = 6)
newData = cbind(data, sample(c(0,1), size = nrow(data), replace = TRUE))