2014-10-05 4 views
0

지금 당분간 검색을 해왔고 대답을 찾을 수 없습니다. 나는 통계 데이터에 대한 단순한 함수를 만들어 목록에서 가져 와서 조작하고 평균과 겹 따옴표를 만듭니다. 함수는 아무 것도 반환하지 않습니다. 오류가 생성되지 않고 행렬이 작성됩니다.R 스크립트가 데이터를 반환하지 않음

출처 :

library(matrixStats) 
source("Control_Function.R") 

mydata <- read.table("DataSmall.txt") 
length <- nrow(mydata) 
a<-length/11 
#begining control limits 

control(mydata) 

Control_Function.R

control <- function(arg1){ 
     mat1 <-matrix(unlist(arg1),11,25) 
     matAverage <-colMeans(mat1) 
     matSdAv <- colSds(mat1) 
     sbar <-mean(matSdAv) 
     xbarbar<-mean(matAverage) 
     newlist<-list(matAverage, matSdAv, sbar, xbarbar) 
     return(newlist) 

    } 

어떤 도움을 주시면 감사하겠습니다.

감사 답변을 확인하려면 그냥 원하는 경우

+0

스크립트를 어떻게 부르시겠습니까? – Dason

+4

'source'를 사용하여 최상위 스크립트를 실행하는 경우 결과를보고 싶다면 print 문을 추가해야합니다. – Dason

답변

0

는, 당신은 다음과 같이 "인쇄"를 추가해야합니다

control <- function(arg1){ 
    mat1 <-matrix(unlist(arg1),11,25) 
    print(matAverage <-colMeans(mat1)) 
    print(matSdAv <- colSds(mat1)) 
    print(sbar <-mean(matSdAv)) 
    print(xbarbar<-mean(matAverage)) 
    newlist<-list(matAverage, matSdAv, sbar, xbarbar) 
    return(newlist) 

} 

당신이 원하는 경우에 실제로 저장하는 객체 하나 (함수 환경이 아닌) 작업 공간으로 복사 한 다음 저장하려는 객체에 이와 같이 < <을 추가하십시오 (작업 공간 "새 목록"에 추가하려는 객체를 만들었습니다) :

control <- function(arg1){ 
    mat1 <-matrix(unlist(arg1),11,25) 
    print(matAverage <-colMeans(mat1)) 
    print(matSdAv <- colSds(mat1)) 
    print(matSdAv) 
    print(sbar <-mean(matSdAv)) 
    print(xbarbar<-mean(matAverage)) 
    newlist <<- list(matAverage, matSdAv, sbar, xbarbar) 

} 
관련 문제