내에서 "을 (를) 찾을 수 없습니다 객체"나는 약이 기능이 기능
plot_pca_models <- function(models, id) {
library(lattice)
splom(models, groups=id)
}
나는 이런 식으로 전화 해요 :이 오류에
plot_pca_models(data.pca, log$id)
느릅 나무 결과 : 나는 포장 기능이없는 호출
Error in eval(expr, envir, enclos) : object 'id' not found
:
splom(data.pca, groups=log$id)
는이 오류가 발생합니다 :
Error in log$id : object of type 'special' is not subsettable
을하지만, 내가 할 때 :
id <- log$id
splom(models, groups=id)
이 예상 다르게 동작한다.
누구나 왜이 문제를 어떻게 해결할 수 있는지 설명 할 수 있습니까? 감사. BTW
: 나는 예를 들어, 여기에 비슷한 질문 알고 있어요 :
- Help understand the error in a function I defined in R
- Object not found error with ddply inside a function 이
- Object disappears from namespace in function
하지만 그들 중 누구도 나에게 도움이되지 않습니다.
편집 : 요청으로, 전체가 "plot_pca_models"기능 :
plot_pca_models <- function(data, id, sel=c(1:4), comp=1) {
# 'data' ... princomp objects
# 'id' ... list of samples id (classes)
# 'sel' ... list of models to compare
# 'comp' ... which pca component to compare
library(lattice)
models <- c()
models.size <- 1:length(data)
for(model in models.size) {
models <- c(models, list(data[[model]]$scores[,comp]))
}
names(models) <- 1:length(data)
models <- do.call(cbind, models[sel])
splom(models, groups=id)
}
EDIT2 : 나는 문제를 재현하기 위해 관리했습니다.
require(lattice)
my.data <- data.frame(pca1 = rnorm(100), pca2 = rnorm(100), pca3 = rnorm(100))
my.id <- data.frame(id = sample(letters[1:4], 100, replace = TRUE))
plot_pca_models2 <- function(x, ajdi) {
splom(x, group = ajdi)
}
plot_pca_models2(x = my.data, ajdi = my.id$id)
위와 같은 오류가 발생합니다.
'log'는 기저 R의 함수입니다. 기능을 수행 한 후에 이름을 지정하지 않는 것이 좋습니다. 혼동을 야기 할 수 있습니다. – Thomas
개체를'log'라고 부르지 마십시오. 'log'는'base' 패키지의 함수입니다. 문제가 계속 발생하면 이름을 변경하고 알려주십시오. – shadow
격자가 비표준 평가를 사용하기 때문입니다. 실제로 원하는 것을 말하지는 않지만'print (splom (models, groups = id)) '를 시도하십시오. – hadley