使用rstudio构建z测试时返回函数位置
我已将以下功能作为使用rstudio构建z测试时返回函数位置,r,function,R,Function,我已将以下功能作为 z.test1<-function(H0,ssd,smean,n,alpha){ smean<-mean(x) ssd<-var(x) n<-length(x) z_stat<-(smean-H0)/(ssd/sqrt(n)) z=qnorm(1-(alpha/2)) if(isTRUE(abs(z_stat)<z)==T)
z.test1<-function(H0,ssd,smean,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
z_stat<-(smean-H0)/(ssd/sqrt(n))
z=qnorm(1-(alpha/2))
if(isTRUE(abs(z_stat)<z)==T)
{conclusion = 'accept H0'}
else
{conclusion = 'reject H0'}
p.value=pnorm(abs(z_stat),lower.tail = F)*2
test=c(H0,smean,n,ssd^2,z_stat,z,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Population variance','Test statistics',
'Critical value','p-value','conclusion')
result=c(cat('using the numeric vector x, the below information were acquired\n'),
data.frame(section=name,value=test))
}
return(result)
}
1无效假设0
2样本平均数2.39127681132961
3样本量30
4人口方差2652.78931271861
5测试统计数据0.254295748961784
6临界值1.64485362695147
7 p值0.399633541861594
8结论接受H0
f<-function(x,y){
if (!exists('y')==T){#one sample test
if (length(x)>=30){
#z-test
H0<-as.integer(readline("Type null hypothesis(H0) in number:"))
alpha<-as.integer(readline("Type your alpha value:"))
form<-(readline("Form of H0(left/right/both):"))
if ((form=='both')==T){
z.test1<-function(H0,ssd,smean,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
z_stat<-(smean-H0)/(ssd/sqrt(n))
z=qnorm(1-(alpha/2)) #alpha = 유의수준
if(isTRUE(abs(z_stat)<z)==T)
{conclusion = 'accept H0'}
else
{conclusion = 'reject H0'}
p.value=pnorm(abs(z_stat),lower.tail = F)*2
test=c(H0,smean,n,ssd^2,z_stat,z,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Population variance','Test stastistics',
'Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
else if((form=='left')==T){
z.test1<-function(H0,ssd,smean,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
z_stat<-(smean-H0)/(ssd/sqrt(n))
z=qnorm(alpha) #alpha = 유의수준
if(isTRUE(z_stat<z)==T)
{conclusion = 'accept H0'}
else
{conclusion = 'reject H0'}
p.value=pnorm(z_stat,lower.tail = T)
test=c(H0,smean,n,ssd^2,z_stat,z,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Population variance','Test stastistics',
'Confidence interval','p-value','conclusion')
result<-list(cat('using the numeric vector x, the below informations were acquired\n'),
data.frame(section=name,value=test))
return(result)
}
}
else{
z.test1<-function(H0,ssd,smean,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
z_stat<-(smean-H0)/(ssd/sqrt(n))
z=qnorm(1-(alpha)) #alpha = 유의수준
if(isTRUE(z_stat>-z)==T)
conclusion = 'accept H0'
else
conclusion = 'reject H0'
p.value=pnorm(z_stat,lower.tail = F)
test=c(H0,smean,n,ssd^2,z_stat,z,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Population variance','Test stastistics',
'Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
}
else{#30미만
H0<-as.integer(readline("Type null hypothesis(H0) in number:"))
alpha<-as.integer(readline("Type your alpha value:"))
form<-(readline("Form of H0(left/right/both):"))
ssd<-readline('Input standard deviation of sample:')
if ((form=='both')==T){
t.test1<-function(H0,smean,ssd,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
t_stat<-(smean-H0)/(ssd/sqrt(n))
t=qt(1-(alpha/2),n-1)
if(isTRUE(abs(t_stat)<t)==T)
conclusion='accept H0'
else conclusion='reject H0'
p.value=(1-pt(abs(t_stat),n-1))*2
test=c(H0,smean,n,ssd^2,t_stat,t,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Sample variance','Test stastistics',
'Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
else if ((form=='left')==T){
t.test1<-function(H0,smean,ssd,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
t_stat<-(smean-H0)/(ssd/sqrt(n))
t=qt(1-(alpha/2),n-1)
if(isTRUE(t_stat<t)==T) conclusion='accept H0'
else conclusion='reject H0'
p.value=(1-pt(abs(t_stat),n-1))*2
test=c(H0,smean,n,ssd^2,t_stat,t,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Sample variance','Test stastistics',
'Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
else {
t.test1<-function(H0,smean,ssd,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
t_stat<-(smean-H0)/(ssd/sqrt(n))
t=qt(1-(alpha/2),n-1)
if(isTRUE(t_stat>-t)==T) conclusion='accept H0'
else conclusion='reject H0'
p.value=(1-pt(abs(t_stat),n-1))*2
test=c(H0,smean,n,ssd^2,t_stat,t,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Sample variance','Test stastistics',
'Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
}
}
else{ #two sample test
if (length(x)>=30){
H0<-as.integer(readline("Type null hypothesis(H0) in number:"))
alpha<-as.integer(readline("Type your alpha value:"))
form<-(readline("Form of H0(left/right/both):"))
if((form=='both')==T){
z.test2<-function(sm1,sm2,ssd1,ssd2,n1,n2,alpha){
sm1<-mean(x)
sm2<-mean(y)
ssd1<-var(x)
ssd2<-var(y)
n1<-length(x)
n2<-length(y)
z_stat<-(sm1-sm2)/sqrt(ssd1^2/n1+ssd2^2/n2)
z=qt(1-alpha/2)
if((abs(z_stat)<z)==T){conclusion='accept H0'}
else {conclusion="reject H0"}
p.value=pt(abs(z_stat),df=n1-1,lower.tail = F)*2
test=c(sm1,sm2,ssd1^2,ssd2^2,n1,n2,z0,z,p.value,conclusion)
name=c('Sample mean 1','Sample mean 2','Population variance 1','Population variance 2',
'Sample size 1','Sample size 2','test statistics','Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
else if((form=='left')==T){
z.test2<-function(sm1,sm2,ssd1,ssd2,n1,n2,alpha){
sm1<-mean(x)
sm2<-mean(y)
ssd1<-var(x)
ssd2<-var(y)
n1<-length(x)
n2<-length(y)
z_stat<-(sm1-sm2)/sqrt(ssd1^2/n1+ssd2^2/n2)
z=qt(alpha)
if((z_stat>-z)==T)conclusion='accept H0'
else conclusion="reject H0"
p.value=pt(abs(z_stat),df=n1-1,lower.tail = T)
test=c(sm1,sm2,ssd1^2,ssd2^2,n1,n2,z0,z,p.value,conclusion)
name=c('Sample mean 1','Sample mean 2','Population variance 1','Population variance 2',
'Sample size 1','Sample size 2','test statistics','Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
else{
z.test2<-function(sm1,sm2,ssd1,ssd2,n1,n2,alpha){
sm1<-mean(x)
sm2<-mean(y)
ssd1<-var(x)
ssd2<-var(y)
n1<-length(x)
n2<-length(y)
z_stat<-(sm1-sm2)/sqrt(ssd1^2/n1+ssd2^2/n2)
z=qt(1-alpha)
if((z_stat<z)==T)conclusion='accept H0'
else conclusion="reject H0"
p.value=pt(abs(z_stat),df=n1-1,lower.tail = F)
test=c(sm1,sm2,ssd1^2,ssd2^2,n1,n2,z0,z,p.value,conclusion)
name=c('Sample mean 1','Sample mean 2','Population variance 1','Population variance 2',
'Sample size 1','Sample size 2','test statistics','Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
}
#z-test
else{#30미만
ssd<-as.integer(readline('Input standard deviation of sample:'))
H0<-as.integer(readline("Type null hypothesis(H0) in number:"))
alpha<-as.integer(readline("Type your alpha value:"))
t.test2 <- function(m1,m2,ssd1,ssd2,n1,n2,m0=0,equal.variance=FALSE){
m1<-mean(x)
m2<-mean(y)
ssd1<-var(x)
ssd2<-var(y)
n1<-length(x)
n2<-length(y)
if( equal.variance==FALSE ) {
se <- sqrt((ssd1^2/n1)+(ssd2^2/n2))
df <- ((ssd1^2/n1 + ssd2^2/n2)^2)/((ssd1^2/n1)^2/(n1-1)+(ssd2^2/n2)^2/(n2-1))
}
else{
se <- sqrt((1/n1 + 1/n2)*((n1-1)*s1^2+(n2-1)*s2^2)/(n1+n2-2) )
df <- n1+n2-2
}
t <- (m1-m2-m0)/se
test=c(m1,m2,ssd1,ssd2,n1,n2,(m1-m2), se, t, 2*pt(-abs(t),df))
names=c('Sample mean 1','Sample mean 2','Population variance 1','Population variance 2',
'Sample size 1','Sample size 2','Difference of means', 'Std Error', 'test stastics','p-value')
result<-data.frame(section=name,value=test)
return(result)
}
}
}
}
f=30){
#z-检验
H0这是一个相当常见的初学者程序员困惑…当您使用cat()
打印某个内容时,函数返回的值是NULL
。下面是一个简单的示例,您可以在提示时使用(与嵌入函数时相比,调试/查看发生了什么更容易):
还有几点:
cat()
无法处理数据帧;您必须单独使用print()
或cat()
组件
- 这将有助于有一个可复制的例子
谢谢你的评论。我想要的结果是打印出来的是“使用数值向量x,获得了以下信息”,以及下面的计算数据框。我现在正在处理它,但仍然无法将两者都作为函数的结果。你能编辑你的问题以包含一个可复制的示例吗(即输入和期望输出的具体示例)?我已编辑了问题!
f<-function(x,y){
if (!exists('y')==T){#one sample test
if (length(x)>=30){
#z-test
H0<-as.integer(readline("Type null hypothesis(H0) in number:"))
alpha<-as.integer(readline("Type your alpha value:"))
form<-(readline("Form of H0(left/right/both):"))
if ((form=='both')==T){
z.test1<-function(H0,ssd,smean,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
z_stat<-(smean-H0)/(ssd/sqrt(n))
z=qnorm(1-(alpha/2)) #alpha = 유의수준
if(isTRUE(abs(z_stat)<z)==T)
{conclusion = 'accept H0'}
else
{conclusion = 'reject H0'}
p.value=pnorm(abs(z_stat),lower.tail = F)*2
test=c(H0,smean,n,ssd^2,z_stat,z,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Population variance','Test stastistics',
'Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
else if((form=='left')==T){
z.test1<-function(H0,ssd,smean,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
z_stat<-(smean-H0)/(ssd/sqrt(n))
z=qnorm(alpha) #alpha = 유의수준
if(isTRUE(z_stat<z)==T)
{conclusion = 'accept H0'}
else
{conclusion = 'reject H0'}
p.value=pnorm(z_stat,lower.tail = T)
test=c(H0,smean,n,ssd^2,z_stat,z,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Population variance','Test stastistics',
'Confidence interval','p-value','conclusion')
result<-list(cat('using the numeric vector x, the below informations were acquired\n'),
data.frame(section=name,value=test))
return(result)
}
}
else{
z.test1<-function(H0,ssd,smean,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
z_stat<-(smean-H0)/(ssd/sqrt(n))
z=qnorm(1-(alpha)) #alpha = 유의수준
if(isTRUE(z_stat>-z)==T)
conclusion = 'accept H0'
else
conclusion = 'reject H0'
p.value=pnorm(z_stat,lower.tail = F)
test=c(H0,smean,n,ssd^2,z_stat,z,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Population variance','Test stastistics',
'Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
}
else{#30미만
H0<-as.integer(readline("Type null hypothesis(H0) in number:"))
alpha<-as.integer(readline("Type your alpha value:"))
form<-(readline("Form of H0(left/right/both):"))
ssd<-readline('Input standard deviation of sample:')
if ((form=='both')==T){
t.test1<-function(H0,smean,ssd,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
t_stat<-(smean-H0)/(ssd/sqrt(n))
t=qt(1-(alpha/2),n-1)
if(isTRUE(abs(t_stat)<t)==T)
conclusion='accept H0'
else conclusion='reject H0'
p.value=(1-pt(abs(t_stat),n-1))*2
test=c(H0,smean,n,ssd^2,t_stat,t,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Sample variance','Test stastistics',
'Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
else if ((form=='left')==T){
t.test1<-function(H0,smean,ssd,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
t_stat<-(smean-H0)/(ssd/sqrt(n))
t=qt(1-(alpha/2),n-1)
if(isTRUE(t_stat<t)==T) conclusion='accept H0'
else conclusion='reject H0'
p.value=(1-pt(abs(t_stat),n-1))*2
test=c(H0,smean,n,ssd^2,t_stat,t,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Sample variance','Test stastistics',
'Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
else {
t.test1<-function(H0,smean,ssd,n,alpha){
smean<-mean(x)
ssd<-var(x)
n<-length(x)
t_stat<-(smean-H0)/(ssd/sqrt(n))
t=qt(1-(alpha/2),n-1)
if(isTRUE(t_stat>-t)==T) conclusion='accept H0'
else conclusion='reject H0'
p.value=(1-pt(abs(t_stat),n-1))*2
test=c(H0,smean,n,ssd^2,t_stat,t,p.value,conclusion)
name=c('Null hypothesis','Sample mean','Sample size','Sample variance','Test stastistics',
'Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
}
}
else{ #two sample test
if (length(x)>=30){
H0<-as.integer(readline("Type null hypothesis(H0) in number:"))
alpha<-as.integer(readline("Type your alpha value:"))
form<-(readline("Form of H0(left/right/both):"))
if((form=='both')==T){
z.test2<-function(sm1,sm2,ssd1,ssd2,n1,n2,alpha){
sm1<-mean(x)
sm2<-mean(y)
ssd1<-var(x)
ssd2<-var(y)
n1<-length(x)
n2<-length(y)
z_stat<-(sm1-sm2)/sqrt(ssd1^2/n1+ssd2^2/n2)
z=qt(1-alpha/2)
if((abs(z_stat)<z)==T){conclusion='accept H0'}
else {conclusion="reject H0"}
p.value=pt(abs(z_stat),df=n1-1,lower.tail = F)*2
test=c(sm1,sm2,ssd1^2,ssd2^2,n1,n2,z0,z,p.value,conclusion)
name=c('Sample mean 1','Sample mean 2','Population variance 1','Population variance 2',
'Sample size 1','Sample size 2','test statistics','Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
else if((form=='left')==T){
z.test2<-function(sm1,sm2,ssd1,ssd2,n1,n2,alpha){
sm1<-mean(x)
sm2<-mean(y)
ssd1<-var(x)
ssd2<-var(y)
n1<-length(x)
n2<-length(y)
z_stat<-(sm1-sm2)/sqrt(ssd1^2/n1+ssd2^2/n2)
z=qt(alpha)
if((z_stat>-z)==T)conclusion='accept H0'
else conclusion="reject H0"
p.value=pt(abs(z_stat),df=n1-1,lower.tail = T)
test=c(sm1,sm2,ssd1^2,ssd2^2,n1,n2,z0,z,p.value,conclusion)
name=c('Sample mean 1','Sample mean 2','Population variance 1','Population variance 2',
'Sample size 1','Sample size 2','test statistics','Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
else{
z.test2<-function(sm1,sm2,ssd1,ssd2,n1,n2,alpha){
sm1<-mean(x)
sm2<-mean(y)
ssd1<-var(x)
ssd2<-var(y)
n1<-length(x)
n2<-length(y)
z_stat<-(sm1-sm2)/sqrt(ssd1^2/n1+ssd2^2/n2)
z=qt(1-alpha)
if((z_stat<z)==T)conclusion='accept H0'
else conclusion="reject H0"
p.value=pt(abs(z_stat),df=n1-1,lower.tail = F)
test=c(sm1,sm2,ssd1^2,ssd2^2,n1,n2,z0,z,p.value,conclusion)
name=c('Sample mean 1','Sample mean 2','Population variance 1','Population variance 2',
'Sample size 1','Sample size 2','test statistics','Confidence interval','p-value','conclusion')
result<-data.frame(section=name,value=test)
return(result)
}
}
}
#z-test
else{#30미만
ssd<-as.integer(readline('Input standard deviation of sample:'))
H0<-as.integer(readline("Type null hypothesis(H0) in number:"))
alpha<-as.integer(readline("Type your alpha value:"))
t.test2 <- function(m1,m2,ssd1,ssd2,n1,n2,m0=0,equal.variance=FALSE){
m1<-mean(x)
m2<-mean(y)
ssd1<-var(x)
ssd2<-var(y)
n1<-length(x)
n2<-length(y)
if( equal.variance==FALSE ) {
se <- sqrt((ssd1^2/n1)+(ssd2^2/n2))
df <- ((ssd1^2/n1 + ssd2^2/n2)^2)/((ssd1^2/n1)^2/(n1-1)+(ssd2^2/n2)^2/(n2-1))
}
else{
se <- sqrt((1/n1 + 1/n2)*((n1-1)*s1^2+(n2-1)*s2^2)/(n1+n2-2) )
df <- n1+n2-2
}
t <- (m1-m2-m0)/se
test=c(m1,m2,ssd1,ssd2,n1,n2,(m1-m2), se, t, 2*pt(-abs(t),df))
names=c('Sample mean 1','Sample mean 2','Population variance 1','Population variance 2',
'Sample size 1','Sample size 2','Difference of means', 'Std Error', 'test stastics','p-value')
result<-data.frame(section=name,value=test)
return(result)
}
}
}
}
x <- cat("abc")
## abc
print(x)
## NULL
f <- function(x) {
cat("the mean of x is", mean(x), "\n")
return(mean(x))
}