1

Random.lengthからの値が data.frame に基づいて特定の間隔に収まる場合、値 (確率) を割り当てたいと思いData$Measureます。

サンプルデータ:

set.seed(123)
Data <- data.frame(Measure=sort(rnorm(10,5,2),decreasing=FALSE),
        Probability=sort(runif(10,0,1),decreasing=FALSE))
Random.length <- as.vector(sort(rnorm(5,5,2),decreasing=FALSE))

ここでは、 data.frameRandom.lengthの値に対応するベクトルに確率を割り当てたいと考えています。MeasureData

これは私が試したものです。それは一種の作品です。(私が何を意味するかを示すのと同じくらい良いだけです....)

AssignValue <- function (x,y,z){
CopyNumber <- rep(0, length(x))
for(i in 1:length(x)){
    if(x[i] <= y[1]) { CopyNumber[i] <- z[1]
} else if(x[i] > y[1] & x[i] < y[2]) {  CopyNumber[i] <- z[2]
} else if(x[i] > y[2] & x[i] < y[3]) {  CopyNumber[i] <- z[3]
} else if(x[i] > y[3] & x[i] < y[4]) {  CopyNumber[i] <- z[4]
} else if(x[i] > y[4] & x[i] < y[5]) {  CopyNumber[i] <- z[5]
} else if(x[i] > y[5] & x[i] < y[6]) {  CopyNumber[i] <- z[6]
} else if(x[i] > y[6] & x[i] < y[7]) {  CopyNumber[i] <- z[7]
} else if(x[i] > y[7] & x[i] < y[8]) {  CopyNumber[i] <- z[8]
} else if(x[i] > y[8] & x[i] < y[9]) {  CopyNumber[i] <- z[9]
} else if(x[i] > y[9]) {  CopyNumber[i] <- z[10]
}
}
CopyNumber
}


AssignValue(Random.length,Data$Measure,Data$Prob)

現在、私のdata.frameDataの長さは51であるため、実際のループは...z [51]までで、基本的にdata.frame全体をスキャンします。デモンストレーションのためにこれを短くしました。したがって、実際のソリューションは、おそらく任意の長さに対処できる必要があります。

また、ソリューションは任意の長さのRandom.lengthベクトルで機能する必要があります。

編集: ループの最後に小さな間違いがありましたが、現在は修正されています。

4

1 に答える 1