Utilisation J'ai toujours pensé que la deuxième colonne de merci. et la sortie complète de STR (sondage_om) code> sur ma trame de données indique que toutes mes données numériques sont atomic code>. Si j'utilise classe (sondage_om $ perc.om) code> il renvoie numérique code>. STR CODE> a montré la classe des données, mais elle n'apparaît pas aussi simple que mes questions sont: p>
STR code> signaler? li>
atomic code> et comment va-t-il différer de numérique code>? li>
atomic code> et non num code> ou int code>? li>
ol>
dput (tête (sondage_om, 20)) code> fournit: p> str (arond_om) code> est : p>
3 Réponses :
Je crois que vos trois questions font essentiellement bouillir jusqu'à une chose. P>
La deuxième colonne de Ainsi, str () code> renvoie le mode code> de l'objet, et non la classe. L'instruction ? Atomique code> redirige vers ? Vecteur code> où il stipule: "Les modes atomiques sont" logiques "," entier "," Numeric "(Synonyme" Double " ), "complexe", "caractère" et "cru". " em> p>
numérique code> est l'un des modes de atomic code>. p>
mode code> fait référence au mode de stockage d'un objet. Voir ? MODE CODE> Pour plus de détails. P>
Mais essayez d'obtenir str () code> pour sortir atomique code> au lieu du mode spécifique des données ... Je pense que c'est la poussée du q, comme les commentaires ci-dessus de la Op suggère. Pourquoi indique-t-il atomique code> et non le mode réel?
R divise les types de données en atomique et récursif. Les choses que la plupart des gens appellent que les vecteurs sont tous atomiques (comme mentionné plusieurs personnes à ce jour.) Les listes peuvent avoir des niveaux de complexité arbitraires, c'est-à-dire des listes dans des listes et retourneront false de IS.ATOMIC (). Les vecteurs atomiques peuvent avoir des attributs sans perdre leur "atomicité". P>
Oui, mais ne répond pas vraiment à la poussée principale du Q - Pourquoi atomique code> et non le mode réel? Comment arriver à un tel objet?
regarder Nous obtenons En regardant la page d'aide pour et appeler je vois dans votre édition sur laquelle vous avez des attributs supplémentaires sur Les éléments de votre cadre de données et que vous obtenez ces lignes supplémentaires sur vos attributs également, il semblerait donc que cela explique cela. p> p> utils ::: str.default code>, nous voyons que nous obtenons la sortie habituelle de int code>, num code>, etc., etc., Si l'instruction si code> est true: atomic code> si cette instruction est fausse (et cela aurait autrement été INT code>, num code>, etc.). p> is.vector code>, nous voyons qu'il ne renvoie que vrai Si c'est un vecteur sans attributs autres que les noms. Voici un cadre de données où B code> a un attribut supplémentaire: p> str code> sur il donne atomique code> pour b code> au lieu de int code>. p>
Merci pour votre contribution sur ma question. Cela aide-moi à comprendre ce qui se passe sous la capuche un peu mieux ... J'ai ajouté les données dput code> demandées, espérons que cela rendra le problème plus clair.
Merci pour votre réponse. J'ai supprimé les commentaires (c'est-à-dire des attributs supplémentaires) et le mode code> dans str code> est retourné aux résultats attendus. Je viens de commencer à ajouter les commentaires, mais je suppose que je vais avoir besoin d'un moyen différent d'annoter mes cadres de données. Merci encore
+1 pour déchiffrer le code str code>. J'ai vu cette même déclaration, mais n'a pas réussi à faire l'interprétation correcte, comme vous l'avez fait.
@Kennypeanuts: concernant (2), je pense que "atomique" est un terme général pour les types de données suivants - caractère, complexe, double, entier et logique.
@Kennyypeanuts: En ce qui concerne (1), si je comprends votre question correctement, vous ne savez pas pourquoi la colonne "Notes" de "My.Data" est affichée comme "facteur". R ne contrainte généralement pas les données dans une correspondance avec les nombres naturels (1, 2, 3, ...) pour réduire l'utilisation de la mémoire. Ces chiffres correspondant aux données d'origine sont appelés «facteurs». Par exemple, si j'ai un vecteur ('A', 'B', 'C', 'A', 'A', 'A', 'A', 'A', 'B', 'B'), r ne voit aucune raison de stocker six cordes, plutôt qu'il crée une correspondance 'A ': 1,' B ': 2,' C ': 3 et stocke le vecteur comme (1,2,3,1,1,2).
@Jubbles, merci pour votre contribution. Ce n'est pas tout à fait ce que je suis confus. Je comprends
facteur code> dans le cas des notes. Ce que je suis incertain, c'est pourquoi les variables numériques (par exemple, perc.om) ont été désignéesatomique code> et nonnum code>. Je ne suis toujours pas totalement clair sur ce queatomique code> est que, comme vous le suggérez, il s'agit d'un type de données général qui inclut numérique. Si j'utilise typeof (my.data $ perc.om), je reçoisdouble code> (et je ne sais pas comment cela diffère de la classe numérique). Je suppose que j'ai besoin de mieux comprendre les types de données et les classes.Pouvez-vous inclure l'ensemble de la sortie
str () code> - vous avez au moins coupé le dessus. En outre, certaines ou toutes les données seraient utiles. S'il s'agit d'une trame de données,dput (tête (my.data, 20)) code> devrait être suffisant pour que nous puissions travailler. Modifier vous q pour inclure cette information s'il vous plaît.@Gavin Simpson, désolé, j'ai pris si longtemps pour répondre - j'ai ajouté les données que vous suggérez de suggérer serait utile à la question. Merci pour votre aide.
Fait intéressant,
Head Code> Bandes les attributs causés au comportement que vous avez vu!str (tête (my.data, 20)) code> sera l'air que vous attendez!