如何检查名称列表并使用所选元素?

时间:2017-12-30 10:53:14

标签: r list

我有两个包含不同变量及其值的列表。如何在条件语句中检查列表名称是否正确,然后在算法的其他部分使用列表中的选定元素?

$myOwnGrayColor: #555;
@import 'modules/_overrides.scss';
//In _overrides.scss make something like $body-bg: $myOwnGrayColor; and $gray-light: $myOwnGrayColor;
@import 'vendor/_bootstrap.scss';

2 个答案:

答案 0 :(得分:3)

如果我已正确理解您的问题,您希望您的功能告诉您列表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))。您如何确定满足哪种条件?

我对您的代码进行了一些小的调整。

答案 1 :(得分:0)

试试看我:

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"