부분 집합 및 subset
인수에 전달합니다 : 나는 substitute
과 노력패스 일부 인수는 내가 <code>subset</code>를 호출하는 기능을 가지고 싶습니다
df <- data.frame(abc=c("A","A","B","B"),value=1:4)
subset(df,abc=="A")
## works of course:
# abc value
#1 A 1
#2 A 2
mysubset <- function(df,ssubset)
subset(df,ssubset)
mysubset(df,abc=="A")
## Throws an error
# Error in eval(expr, envir, enclos) : object 'abc' not found
mysubset2 <- function(df,ssubset)
subset(df,eval(ssubset))
mysubset2(df,expression(abc=="A"))
## Works, but needs expression
하지만, 적절한 조합을 찾을 수 없습니다 . 이 기능을 어떻게 작동시킬 수 있습니까? 당신이 둥지 따옴표 필요
mysubset <- function(df, ssubset) {
subset(df, eval(parse(text=ssubset)))
}
mysubset(df, "abc=='A'")
# abc value
# 1 A 1
# 2 A 2
주, 그래서 "
및 '
필요 사이에 앞뒤로 전환 :
mysubset(df, abc=='A')
이 봐 유무 : https://github.com/hadley/ devtools/wiki/Evaluation – James제임스, 링크 덕분에, 그것은 매우 통찰력! –
관련 질문 : http://stackoverflow.com/questions/9860090/in-r-why-is-better-than-subset – flodel