从R中的向量采样

从R中的向量采样,r,R,我有一个向量,里面有48个数字,我需要从这个向量中随机选择26个数字,不需要替换,然后将它们存储在一个向量中。我还需要将剩下的22个数字存储在一个单独的向量中。我知道如何在不替换的情况下随机选择26个数字并存储它们,但我很难找到剩下的22个数字。 谢谢您的帮助。您可以使用%中的语法如下: numbers1 <- sample(x, 26, replacement = false) numbers2 <- x[!which(x %in% numbers1)] numbers1这里有一

我有一个向量,里面有48个数字,我需要从这个向量中随机选择26个数字,不需要替换,然后将它们存储在一个向量中。我还需要将剩下的22个数字存储在一个单独的向量中。我知道如何在不替换的情况下随机选择26个数字并存储它们,但我很难找到剩下的22个数字。
谢谢您的帮助。

您可以使用%中的语法如下:

numbers1 <- sample(x, 26, replacement = false)
numbers2 <- x[!which(x %in% numbers1)]
numbers1这里有一种方法:

v <- 1:48
chosen <- sample(rep(c(TRUE, FALSE), c(26, 22)))
v[chosen] #one set
v[!chosen] #its complement

v您可以创建一个随机的指标样本,并取前26个。剩下的22个是你的“剩菜”


i您可以使用
setdiff
获取剩余的数字

total_numbers <- 1:48
first_set <- sample(total_numbers, 26)
remaining_set <- setdiff(total_numbers, first_set)

total_numbers Nice(+1)。这应该是公认的答案,尽管你的意思无疑是
x[i[1:26]]
i确实如此。:)@好的。我有时会忘记R的内置函数是如何矢量化的。请在寻求帮助之前展示一些您的工作。示例代码或可复制的示例不仅可以帮助您获得更快的响应,还可以帮助将来提出类似问题的人。
total_numbers <- 1:48
first_set <- sample(total_numbers, 26)
remaining_set <- setdiff(total_numbers, first_set)