7
votes

Fonction pour ajouter des noms au cadre de données

J'ai une trame de données sans colonnes: xxx

Je veux modifier les noms d'en-tête en "x" et "y"

Je sais que je peux Faites ceci en utilisant: xxx

Ce que je voudrais faire est d'écrire une fonction où je pourrais passer une image de données comme argument et placer les en-têtes avec ces noms d'en-tête. < / p>

J'ai essayé: xxx

Merci d'avance pour toute aide.


0 commentaires

3 Réponses :


8
votes

Votre fonction définit les noms; Vous avez juste besoin de retourner l'objet.

> setNames(data.frame(v1=c(1:10), v2=seq(1, 100, length=10)), c("X","Y"))
    X   Y
1   1   1
2   2  12
3   3  23
4   4  34
5   5  45
6   6  56
7   7  67
8   8  78
9   9  89
10 10 100


1 commentaires

Oui. Et si vous regardez le code source de setnames , vous verrez à quel point vous êtes proche de cela.



6
votes

Il existe une fonction R qui fait déjà cela, bien que la modification du cadre de données de votre environnement, elle renvoie la trame de données renommée: xxx pré>

en fait, vous utilisez déjà cette fonction. , d'une manière rond-point, lorsque vous appelez noms (df) ... p>


Notez que presque aucune fonction dans R ne modifie les valeurs qu'ils ont été transmises - Presque tous sont «fonctionnels» dans le style - exécutant les modifications apportées à une nouvelle copie et qui reviennent. Pour cette raison, vous devriez vous attendre à voir et à écrire beaucoup de code dans le formulaire: x = f (x) code>. P>


Une autre technique que vous trouverez utile est la Renommer la fonction CODE> Dans le Remodape CODE> Emballez: P>

df<-rename(df,c(v1="X", v2="Y"))


0 commentaires

3
votes

Si vous souhaitez étapes latéralement, la copie interne avec les noms <- et df <-rnerame (df, c (v1 = "x", v2 = "y")) et SETNAMES Vous pouvez utiliser le package data.Table package xxx

Vous pouvez définir les noms d'une page .table par référence (sans copie) à l'aide de setnames xxx

si vous ne voulez pas utiliser data.Tables, vous pouvez Utilisez la fonction setattr de la fonction data.Table.Table (qui est très similaire à la fonction du même nom dans le package bit ) xxx


0 commentaires