在 R 中建立相关性的采样
Sampling for making a correlation in R
我有以下数据(这是一个简短的例子):
a=c(110.3,126.6,101,7,105.6,111,131.4,109.7,99.5,107.3)
b=c(210,47.5,234.5,223.9,213.4,250.1,198.3,180.3,170.9,118.9)
c=c(0.6,0.9,0.4,0.5,0.6,0.8,0.8,0.5,0.4,0.6)
val= cbind(a,b,c)
val=as.data.frame(val)
我想生成一个带有函数的样本(a 和 b 之间的相关性)
所以我有以下功能:
acc_func <-function(myVal){
newPop = sample(myVal,nrow(myVal), replace=TRUE)
return((cor(newPop$a, newPop$b)^2)/mean(newPop$c))
}
results = matrix(,ncol=1,nrow=0)
for(i in 1:1000){
accNow = acc_func(val)
results = rbind(results,accNow)
}
head(results)
但由于某些我不明白的原因,R returns 以下消息:
Error in cor(newPop$a, newPop$b) :
supply both 'x' and 'y' or a matrix-like 'x'
有什么想法吗?
非常感谢
您可以在 acc_func()
中放置一个大小参数来确定样本大小,如下所示,
acc_func <-function(myVal,size){
newPop = myVal[sample(1:nrow(myVal),size=size,replace=T),]
return((cor(newPop$a, newPop$b)^2)/mean(newPop$c))
}
results = matrix(,ncol=1,nrow=0)
for(i in 1:1000){
accNow = acc_func(val)
results = rbind(results,accNow)
}
head(results)
给予,
[,1]
accNow 0.1008954
accNow 0.2389546
accNow 0.3955409
accNow 0.1851096
accNow 0.1526633
accNow 0.3613495
我有以下数据(这是一个简短的例子):
a=c(110.3,126.6,101,7,105.6,111,131.4,109.7,99.5,107.3)
b=c(210,47.5,234.5,223.9,213.4,250.1,198.3,180.3,170.9,118.9)
c=c(0.6,0.9,0.4,0.5,0.6,0.8,0.8,0.5,0.4,0.6)
val= cbind(a,b,c)
val=as.data.frame(val)
我想生成一个带有函数的样本(a 和 b 之间的相关性) 所以我有以下功能:
acc_func <-function(myVal){
newPop = sample(myVal,nrow(myVal), replace=TRUE)
return((cor(newPop$a, newPop$b)^2)/mean(newPop$c))
}
results = matrix(,ncol=1,nrow=0)
for(i in 1:1000){
accNow = acc_func(val)
results = rbind(results,accNow)
}
head(results)
但由于某些我不明白的原因,R returns 以下消息:
Error in cor(newPop$a, newPop$b) :
supply both 'x' and 'y' or a matrix-like 'x'
有什么想法吗?
非常感谢
您可以在 acc_func()
中放置一个大小参数来确定样本大小,如下所示,
acc_func <-function(myVal,size){
newPop = myVal[sample(1:nrow(myVal),size=size,replace=T),]
return((cor(newPop$a, newPop$b)^2)/mean(newPop$c))
}
results = matrix(,ncol=1,nrow=0)
for(i in 1:1000){
accNow = acc_func(val)
results = rbind(results,accNow)
}
head(results)
给予,
[,1]
accNow 0.1008954
accNow 0.2389546
accNow 0.3955409
accNow 0.1851096
accNow 0.1526633
accNow 0.3613495