Dans R, comment puis-je vérifier si une liste contient une clé spécifique?
Supposons que j'ai une liste comme suit
foo=list(bar="hello world")
Je voudrais vérifier si ma liste est une touche particulière.
J'observe foo$bar2
sera de retour NULL
pour tout bar2
qui n'est pas égal à bar
, alors j'ai pensé que je pourrais vérifier si la valeur de retour est nulle, mais cela ne semble pas fonctionner:
if (foo$bar2==NULL) 1 # do something here
Cependant, cela donne l'erreur:
Error in if (foo$bar2 == NULL) 1 : argument is of length zero
J'ai ensuite essayé de savoir si la valeur NULL est équivalent à false, comme dans C:
if (foo$bar2) 1 # do something here
Cela donne la même erreur.
J'ai maintenant deux questions. Comment puis-je vérifier si la liste contient la clé?
Et comment puis-je vérifier si une expression est null?
Utilisation
Qu'entendez-vous vérifier si vous avez la liste contient la clé? Quelle est la "clé" dans cette situation?
La clé est le nom de l'élément dans la liste. La validité de la clé ici serait
is.null(...)
pour voir si quelque chose est nulQu'entendez-vous vérifier si vous avez la liste contient la clé? Quelle est la "clé" dans cette situation?
La clé est le nom de l'élément dans la liste. La validité de la clé ici serait
bar
. Je ne suis pas sûr si le R
de la communauté a un autre mot pour cela, mais le R
liste ressemble à un dictionnaire Python pour moi, c'est pourquoi j'ai évoqué le nom comme une "clé".OriginalL'auteur merlin2011 | 2013-11-12
Vous devez vous connecter pour publier un commentaire.
La notion de "clés" sont appelés "noms" dans R.
Ils sont stockés dans un attribut spécial nommé
.Names
et extrait avec de l'names
fonction:J'offre une sémantique de prudence ici, à cause d'une source de confusion en raison de distinguer deux usages de la parole: "noms" dans R: Il y a
.Names
-attributs, mais il y a un tout autre usage de la parolename
dans R qui a à faire avec des cordes ou des jetons qui ont des valeurs indépendantes de toute inspection ou d'extraction des fonctions comme$
ou[
. Tout jeton qui commence par une lettre ou une période et a ni autres caractères spéciaux dans il peut être un validename
. On peut tester avec la fonctionexists
donné une cité version de sonname
:Donc le mot
name
a deux significations différentes dans la R et vous aurez besoin d'être conscient de cette ambiguïté, afin de comprendre comment la langue est déployé. Le.Names
sens fait référence à un attribut à des fins spéciales, tandis que lenames
-sens fait référence à ce qui est appelé un "langage-objet". Le motsymbol
est un synonyme pour ce deuxième sens du mot.Pour ensuite montrer comment votre deuxième question sur le test de nullité pourrait couler dans cette :
OriginalL'auteur 42-