2012-04-19 2 views
1

우연히 ls()를 사용하여 발견 한 ls라는 변수를 만들었습니다. 따라서 함수 ls()와 동일한 이름을 가진 변수가 존재합니다. 어떤 종류의 변수인지 알지 못하고 모든 시도가 변수에 액세스하지 못했기 때문에 내용을 알지 못합니다.변수 이름과 함수 (ls)의 이름이 같음

ls 

은 ls() 함수의 본문을 반환했습니다.

get("ls") 

가 GET (LS) 오류 반환 :

get("ls", mode="numeric") 

객체 'LS'모드의 유효하지 않은 첫 번째 인수를 '숫자'

get("ls", mode=!"function") 

유효한 인수하지 찾을 수 없습니다. 변수에 어떻게 액세스 할 수 있습니까? 나는 class (ls)와 str (ls)도 시도했지만, 모두 ls를 함수로 언급하고있다.

나는 이것에 대해 올바른 질문을 찾을 수 없습니다. 그러나 나는 그것에 대해 전에 읽었을 것이라고 확신한다. 중복 게시물 인 경우 죄송합니다. 도움과 링크를 주시면 감사하겠습니다.

편집이 : dput(ls()[grep("^ls$", ls())])의 출력은 다음과 같습니다

"ls" 

편집 : dput(ls())의 출력은 다음과 같습니다

c("bplo.anno", "c", "combinations.formula", "combo.form", "df", "df.group.unique", "df.test", "dir.work", "form.compl", "fun.boot.lm.stepAIC.4", "fun.boot.lm.stepAIC.5", "fun.CoerceListOfVectorToMatrix", "fun.data.preparation", "fun.dcor.DataFrame", "fun.expand.complete.interaction", "fun.g.ellipse.orig", "fun.K_fold", "fun.lappend", "fun.lm.subset", "fun.lm_AIC", "fun.lst.powerset", "fun.MaxToMinModel.adjrsq", "fun.MaxToMinModel.rsq", "fun.plot.circle", "fun.results", "fun.rs.dcor", "fun.vectorcoerce", "group", "height", "i", "j", "k", "ls", "ls.boot", "ls1", "lst.boot.result", "oldwd", "regressor.names", "response.name", "result.df", "rs.dcor", "source.filename", "tbl.bt", "tbl.nm") 
+0

'STR (LS) 무엇을 '당신을 줄? – csgillespie

+0

str (ls)는 함수를 반환합니다 (name, pos = -1, envir = as.environment (pos), all.names = FALSE, 패턴) – Sebastian

+0

복제 할 수 없습니다. 변수'ls'가 존재합니까? ? '.GlobalEnv $ ls'을 시도해 볼 수는 있지만 지구 환경에 존재한다면'ls'로 액세스 할 수 있어야한다고 생각합니다. –

답변

3

하나의 가능성은 당신이 기능 ls()을 복사 한 것입니다, 즉

ls = ls 

이렇게하면 "문제"가 재현됩니다.

get("ls") 

은 함수를 반환합니다. 당신은 같은 오류 메시지를 얻을 :

R> get("ls", mode="numeric") 
Error in get("ls", mode = "numeric") : 
    object 'ls' of mode 'numeric' was not found 
R> get("ls", mode=!"function") 
Error in !"function" : invalid argument type 

을하고 dput이 같은 결과 제공 :

R> dput(ls()[grep("^ls$", ls())]) 
"ls" 
+0

네 말이 맞다. 나는 그것을 복사 했음에 틀림 없다. 나는 그 가능성을 알지 못했다. – Sebastian

관련 문제