Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的随机子集向量_R_Sub Array - Fatal编程技术网

R中的随机子集向量

R中的随机子集向量,r,sub-array,R,Sub Array,有没有一种方法可以使用sample()或split()(或两者的组合)将向量元素分配给R中的多个子数组 本质上我需要的是一个函数,它可以随机地将值分配给多个子数组 以下是我的全部特定代码: K <- 2 # number of subarrays N <- 100 Hstar <- 10 perms <- 10000 probs <- rep(1/Hstar, Hstar) K1 <- c(1:5) K2 <- c(6:10) specs &

有没有一种方法可以使用sample()或split()(或两者的组合)将向量元素分配给R中的多个子数组

本质上我需要的是一个函数,它可以随机地将值分配给多个子数组

以下是我的全部特定代码:

K <- 2 # number of subarrays

N <- 100

Hstar <- 10

perms <- 10000

probs <- rep(1/Hstar, Hstar)

K1 <- c(1:5)
K2 <- c(6:10)

specs <- 1:N

pop <- array(dim = c(c(perms, N), K))

haps <- as.character(1:Hstar)


for(j in 1:perms){
    for(i in 1:K){ 
        if(i == 1){
            pop[j, specs, i] <- sample(haps, size = N, replace = TRUE, prob = probs)
    } else{
            pop[j,, 1] <- sample(haps[K1], size = N, replace = TRUE, prob = probs[K1])
            pop[j,, 2] <- sample(haps[K2], size = N, replace = TRUE, prob = probs[K2])
        }
    }
}

K这取决于是否需要替换(重复/省略元素的可能性)。不管怎样,这是一条单行线

sample(x,length(x),replace=FALSE)
对于整个多个子阵列的事情不是100%清楚,但我的方法是:

num.intervals<-5
interval.size<-length(x)/5 #need to make sure this is evenly divisible I suppose
arr.master<-rep(NA,0)
for (i in 1:num.intervals){
    arr.master<-rbind(arr.mater,sample(x,interval.size,replace=TRUE)
}

num.intervalsTry
sample
。它将给你随机确定的子集,你可以告诉它你想要的子集的大小。我很困惑-你是在问如何创建
sub1
sub2
。。。以一种不那么麻烦的方式?或者您正在询问如何从
sub1
sub2
进行采样。“两个大小相等的子阵列”令人困惑,因为在您的示例中,代码
sub1
sub2
的大小不同,“sub”名称表示“子阵列”。样本量是随机的吗?或者您希望从不同大小的阵列中获得相同大小的样本?有没有替换?@Frank哎哟。。。我应该看到的。现在就改了。@Gregor我正在尽可能地做极简主义者。我会发布我的完整代码。请不要发布你的完整代码!更确切地说,只是描述得更详细一点。也许可以扩展现有的示例,但将其保持在最小值是非常棒的!这听起来很有希望。你的建议是在用值填充较大的数组后,将数组分解为任意数量的子数组,这听起来比我所做的要简单得多(基本上相反)。