1
두 개의 매개 변수 목록이 있습니다. 하나의 목록에는 매개 변수 값 (아래 예제에서는 parameters
)이 포함되어 있고 다른 목록에는 각 매개 변수가 취할 수있는 열거 값 (parameters.enum
)이 모두 들어 있습니다.두 개의 서로 다른 목록의 요소 비교
매개 변수는 필수가 아니므로 NULL
이 될 수 있습니다. parameters.enum
에 모든 매개 변수가 정의되어 있지 않습니다. 매개 변수가 parameters.enum
에 누락 된 경우이 매개 변수에는 제한된 값이 없습니다. 각 비 NULL
parameter
에서 매개 변수 및 parameters.enum
에 정의 된 나는 그들이 유효한 값을 가지고 있는지 확인하고 싶습니다 들어
parameters.enum <- list(a = c("a1", "a2"),
b = c("b1", "b2"),
c = "c1")
parameters <- list(a = "a1", #allowed
b = "a1", #not allowed
c = NULL, #allowed
d = "aaa") #allowed
. 그렇지 않은 경우 메시지를 표시하고 싶습니다 (예 :
'b' should be one of "b1", "b2"
). 당신이 어떤 생각을해야합니까,
for (i in seq_along(parameters)) {
j <- which(names(parameters.enum) == names(parameters[i]))
if (length(j) != 0L && !is.null(parameters[[i]]) && !parameters[[i]] %in% parameters.enum[[j]]) {
cat("Parameter \'", names(parameters[i]), "\' should be one of ", paste0("\"", parameters.enum[[j]], "\"", collapse = ", "), sep = "")
}
}
을하지만 이것을 달성하기 위해 더 간단하고 우아한 방법이있을 수 있습니다 같은 느낌 : 순간
나는 내가 원하는 것을 달성하기 위해 루프를 사용합니까? 감사 !