자주 반복되는 분석을 수행하는 함수를 작성하려고합니다.이 중 일부는 그룹의 수와 각 그룹 내의 구성원 수를 계산하므로 구조에 도움이됩니다. 그러나 내 코드에는 문제 .... 여기ddply 함수에서 실행하면 함수 외부의 환경에서 보입니까?
는 여기에 몇 가지 예를 들어 데이터
> dput(BGBottles)
structure(list(Machine = structure(c(1L, 1L, 1L, 2L, 2L, 2L,
3L, 3L, 3L, 4L, 4L, 4L), .Label = c("1", "2", "3", "4"), class = "factor"),
weight = c(14.23, 14.96, 14.85, 16.46, 16.74, 15.94, 14.98,
14.88, 14.87, 15.94, 16.07, 14.91)), .Names = c("Machine",
"weight"), row.names = c(NA, -12L), class = "data.frame")
이고 것은 내가이 기능을 실행하면, 나는 오류가 내 코드
foo<-function(exp1, exp2, data) {
datadesc<-ddply(data, .(with(data, get(exp2))), nrow)
return(datadesc)
}
입니다
내 EXP1, EXP2을 정의하고 데이터 변수 그는 최초의 글로벌 environemtn를 int로하면> foo(exp="Machine",exp1="weight",data=BGBottles)
Error in eval(substitute(expr), data, enclos = parent.frame()) :
invalid 'envir' argument
그러나, 그것은
> exp1<-"weight"
> exp2<-"Machine"
> data<-BGBottles
> foo(exp="Machine",exp1="weight",data=BGBottles)
with.data..get.exp2.. V1
1 1 3
2 2 3
3 3 3
4 4 3
그래서, 내가 함수의 environemtn의 ddply 실행 외부에서 가정 일? 이것을 막을 수있는 방법이 있습니까, 아니면 제가 잘못하고있는 것입니까?
감사합니다.
폴.