Ich verwende zwei verschiedene Möglichkeiten, cor.test
zu verwenden, eine in meiner eigenen Funktion, die andere cor.test
direkt verwendet. Wenn ich cor.test
in meiner eigenen Funktion verwende, erschien ein Fehler, wie konnte es passieren? Diesecor.test, "nicht genug endliche Beobachtungen"
war OK
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)
Die folgende würde den Fehler geben:
"nicht genug endliche Beobachtungen"
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)
Die folgende würde den Fehler geben :
'y' muss ein numerischer Vektor sein“
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), ein paar Probe:
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"))
Könnten Sie Bitte benutzen Sie 'dput (cust_new)' und fügen Sie die Ergebnisse in Ihre Frage ein, damit wir Ihre Ergebnisse reproduzieren können? – G5W
Sie verwenden 'x' und' y' nicht innerhalb Ihrer 'cor_result' Funktion. –
Ich benutze x und yx = as.numeric (Daten $ x)/as.numeric (Daten $ y), y = as.numeric (Daten $ y), – shan