2017-12-30 41 views
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) { 
    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

ですから、列名がリストに属しているかどうかを確認したいですか?申し訳ありませんが、あなたの質問を翻訳するのは難しいです。 – Sam

+0

サムと同じことをもう少し詳しく説明できますか?あなたはsample_list1とsample_list2を持っていて、同じものであればこれらの2つのリスト間の値を比較したいのですか? – PitterJe

+0

いいえ、私はユーザーが選択したリストを確認したいと思います。 e。 sample_list1にはA、B、Cの変数、sample_list2にはE、F、Gの変数があります。選択したリストから選択した変数を使用します。 – Kohmoc

答えて

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))。どのような条件が満たされたかはどのように判断しますか?

あなたのコードに若干の調整を加えました。

+0

それは私が意味したもので、私の問題を解決します。私の条件文は単なる例であるため、混乱しないでください。 – Kohmoc

+0

偉大な、私は助けることがうれしいです。 – Sam

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" 
関連する問題