2017-12-30 32 views
1

Ich habe zwei Listen mit verschiedenen Variablen und ihren Werten. Wie kann ich überprüfen, ob der Listenname in der Bedingungsanweisung korrekt ist und dann das ausgewählte Element der Liste im weiteren Teil des Algorithmus verwenden?Wie überprüfen Sie die Namensliste und verwenden Sie das ausgewählte 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

So mögen Sie überprüfen, ob ein Spaltenname zu einer Liste gehört? Tut mir leid, es ist schwer, deine Frage zu übersetzen. – Sam

+0

Das gleiche mit Sam bitte kannst du deine Frage etwas mehr erklären? Sie haben sample_list1 und sample_list2 und möchten die Werte zwischen diesen beiden Listen vergleichen, wenn sie gleich sind? – PitterJe

+0

Nein, ich möchte überprüfen, welche Liste der Benutzer gewählt hat, d. e. sample_list1 mit A-, B-, C-Variablen oder sample_list2 mit E-, F-, G-Variablen. Verwenden Sie dann die ausgewählten Variablen aus der ausgewählten Liste. – Kohmoc

Antwort

3

Wenn ich Ihre Frage richtig verstanden haben Sie Ihre Funktion, die Sie feststellen, ob ein bestimmter Name entweder in der Liste 1 oder Liste 2 enthalten ist, oder auch nicht.

Ich habe einigen Code geschrieben (und getestet), so sollte dies den Trick:

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 

Obwohl ich von Ihren bedingten Anweisungen ein wenig verwirrt bin. Sie prüfen auf 2 verschiedene Möglichkeiten und geben trotzdem das gleiche Ergebnis aus (print(name_list)). Wie würden Sie feststellen, welche Bedingung erfüllt wurde?

Ich habe einige kleine Änderungen an Ihrem Code vorgenommen.

+0

Das meinte ich und es löst mein Problem. Verwechseln Sie mich nicht mit meinen bedingten Anweisungen, denn es war nur ein Beispiel. – Kohmoc

+0

Großartig, froh, dass ich helfen konnte. – Sam

0

nur ein Versuch von mir:

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" 
Verwandte Themen