R %s中的.element()和%s未返回正确的值

R %s中的.element()和%s未返回正确的值,r,exists,R,Exists,下面是R脚本包含的逻辑,用于确定元素是否位于列表PPal R输出abc在PPal 当我执行 > RPal("abc") 它回来了 Error in RPal("abc") : Palette not found. 脚本: PPal <- list ( abc = c("#fda726"), def = c("#9aa5b4"), ghi = c("#bdcad0") ) RPal <- function(name){ pal <- NULL

下面是R脚本包含的逻辑,用于确定元素是否位于列表
PPal

R输出
abc
PPal

当我执行

> RPal("abc")
它回来了

Error in RPal("abc") : Palette not found.
脚本:

PPal <- list (
  abc = c("#fda726"),
  def = c("#9aa5b4"),
  ghi = c("#bdcad0")
)

RPal <- function(name){

  pal <- NULL

  if (nargs() != 1){
    stop("Enter 1 valid palettes.")
  }

  if (!(is.element(name,PPal))){
    stop("Palette not found.")
  }
  pal <- PPal[[name]]
  pal
}

如果您有
is.element(name,PPal)
您应该有
is.element(name,names(PPal))
在%中
%的问题是您正在将列表元素与
name
进行比较。您可以在%names(PPal)中使用
name%
谢谢大家,现在可以使用了。
  if (!(name %in% PPal)){
    stop("Palette not found.")
  }