【发布时间】:2016-12-25 14:20:54
【问题描述】:
我使用两种不同的方式来使用cor.test,一种在我自己的函数中,另一种直接使用cor.test。当我在自己的函数中使用cor.test时,出现了错误,怎么会发生?
这是好的
cor.test(x=cust_new$maintain_cust/cust_new$ttl_cust,
y=cust_new$ttl_cust,alternative="two.sided",
method="pearson",conf.level=0.95)
以下将给出错误:
“没有足够的有限观察”
cor_result<-function(x,y,data){
a<-cor.test(x=as.numeric(data$x)/as.numeric(data$y),
y=as.numeric(data$y),
alternative="two.sided",method="spearman",
conf.level=0.95)
r<-a$estimate
p<-a$p.value
c<-data.frame(r=r,p=p)
return(c)
}
d<-cor_result(x=maintain_cust,y=ttl_cust,data=cust_new)
以下将给出错误:
'y' 必须是数值向量"
cor_result<-function(x,y,data){
a<-cor.test(x=data$x/data$y,y=data$y,
alternative="two.sided",method="spearman",conf.level=0.95)
r<-a$estimate
p<-a$p.value
c<-data.frame(r=r,p=p)
return(c)
}
d<-cor_result(x=maintain_cust,y=ttl_cust,data=cust_new)
dput(cust_new),一些样本:
structure(list(data_month = structure(c(16953, 16983, 17014,
17045, 17075, 17106, 16953, 16983, 17014, 17045), class = "Date"),
ttl_cust = c(383L, 580L, 735L, 850L, 952L, 1062L, 2418L,
2492L, 2515L, 2550L), maintain_cust = c(179L, 266L, 355L,
413L, 448L, 508L, 935L, 1026L, 1091L, 1143L)), row.names = c(NA,
10L), class = "data.frame", .Names = c("data_month", "ttl_cust",
"maintain_cust"))
【问题讨论】:
-
能否请您使用
dput(cust_new)并将结果粘贴到您的问题中,以便我们重现您的结果? -
您根本没有在
cor_result函数中使用x和y。 -
我使用 x 和 y.x=as.numeric(data$x)/as.numeric(data$y), y=as.numeric(data$y),
标签: r