2013-09-01 3 views
-1

저는 R을 처음 접했고 며칠 동안 함수에 인수를 전달하는 데 문제가 있습니다. (인용되지 않은임시로 목록에 인수 전달

Means = function(data,by,month){ 
    data1 = list() 
    for (i in 1:length(month)){ 
     data1[[i]] = tapply(data[[i]]$var1,by,mean) 
    } 
    data1 
} 

의한 변수의리스트 같아야

제가 그 안에 BY 문으로 tapply 사용하는 기능을 갖고, 내 데이터 집합에서 데이터 프레임의 형태이기 때문에, 함수는 문제는 함수를 호출하지만), 변수는 인식은 다음과 같습니다

temp = Means(data,list(data$var2,data$var3)) 

이 작동하지 않는 문제는 데이터가 목록이며,이 데이터 프레임이 아니다, 그것은을 육교 할 수있는 방법이 또는 데이터를 재구성해야합니까? 한 가지 방법은 함수 호출에서 for 루프를 수행하는 것입니다.하지만 함수를 사용하여 많은 쓰기 작업을 저장하지 않기 때문에 차라리 피하는 것이 좋습니다.

감사합니다.

+0

당신은 정확한 오류 메시지를 제공해야합니다. "일하지 않았다"진단을 위해 아주 유용하지 않다. – Roland

답변

0

이 작동 :

Means = function(data,by){ 

    data1 = tapply(data$Sepal.Length,by,mean) 
    #return value of the function: 
    data1 
} 

Means(iris, list(iris$Petal.Length, iris$Petal.Width))