簡體   English   中英

如何檢查名稱列表並使用所選元素?

[英]How check name list and use selected element?

我有兩個列表,包含不同的變量及其值。 如何在條件語句中檢查列表名稱是否正確,然后在算法的其他部分使用列表中的所選元素?

sample_list1 <- list(
    varA = 11,
    varB = 22,
    varC = 33)
sample_list2 <- list(
    varE = 44,
    varF = 55,
    varG = 66)
sample_fun <- function(name_list) {
    if (name_list == sample_list1) {
        print(name_list)
    }
    else if (name_list == sample_list2) {
        print(name_list)
    }
    else stop ("Incorrect list name.")
}
sample_fun(sample_list1$varA) # It works
sample_fun(sample_list1$varB) # It doesn't work
sample_fun(sample_list2$varE) # It works
sample_fun(sample_list2$varF) # It doesn't work

如果我已正確理解您的問題,您希望您的函數告訴您列表1或列表2中是否包含給定名稱,或者兩者都不包含。

我寫了一些代碼(並經過測試),所以這應該可以解決問題:

sample_list1 <- list(
  varA = 11,
  varB = 22,
  varC = 33)

sample_list2 <- list(
  varE = 44,
  varF = 55,
  varG = 66)

sample_fun <- function(name_list) {
  # Check if the selection is in list1 or list2 
  if (name_list %in% sample_list1) {
    print ("Belongs to list 1") 
  }
  else if (name_list %in% sample_list2) {
    print("Belongs to list 2") 
  }
  else stop ("Incorrect list name.")
}

sample_fun(sample_list1$varA) # Belongs to list 1
sample_fun(sample_list1$varB) # Belongs to list 1
sample_fun(sample_list2$varE) # Belongs to list 2
sample_fun(sample_list2$varF) # Belongs to list 2

雖然我對你的條件陳述有點困惑。 您檢查2種不同的可能性,但輸出相同的結果( print(name_list) )。 您如何確定滿足哪種條件?

我對你的代碼做了一些小的調整。

試試看我:

sample_list1 <- list(
  varA = 11,
  varB = 22,
  varC = 33)
sample_list2 <- list(
  varE = 44,
  varF = 55,
  varG = 66)

sample_fun <- function(name_list) {
  if (name_list == sample_list1$varA || name_list == sample_list1$varB || name_list == sample_list1$varC) {
    print("list 1")
  } else {
    print("list 2")
  }
}

sample_fun(sample_list1$varA) # "list 1"
sample_fun(sample_list1$varB) # "list 1"
sample_fun(sample_list2$varE) # "list 2"
sample_fun(sample_list2$varF) # "list 2"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM