web-dev-qa-db-fra.com

Comment ajouter une nouvelle colonne à un cadre de données (au début et à la fin)?

Comment ajouter une nouvelle variable à un bloc de données existant, mais que je veux ajouter au début et à la fin. par exemple. mon cadre de données est

b c d
1 2 3
1 2 3
1 2 3

Je veux ajouter une nouvelle variable a, de sorte que le cadre de données ressemble à

a b c d
0 1 2 3
0 1 2 3
0 1 2 3
43
George Gao

Utilisez cbind par exemple.

df <- data.frame(b = runif(6), c = rnorm(6))
cbind(a = 0, df)

donnant:

> cbind(a = 0, df)
  a         b          c
1 0 0.5437436 -0.1374967
2 0 0.5634469 -1.0777253
3 0 0.9018029 -0.8749269
4 0 0.1649184 -0.4720979
5 0 0.6992595  0.6219001
6 0 0.6907937 -1.7416569
86
Gavin Simpson
df <- data.frame(b = c(1, 1, 1), c = c(2, 2, 2), d = c(3, 3, 3))
df
##   b c d
## 1 1 2 3
## 2 1 2 3
## 3 1 2 3

df <- data.frame(a = c(0, 0, 0), df)
df
##   a b c d
## 1 0 1 2 3
## 2 0 1 2 3
## 3 0 1 2 3
17
Chinmay Patil

Ajouter une colonne "a"

> df["a"] <- 0
> df
  b c d a
1 1 2 3 0
2 1 2 3 0
3 1 2 3 0

Trier par colonne en utilisant le nom de la colonne

> df <- df[c('a', 'b', 'c', 'd')]
> df
  a b c d
1 0 1 2 3
2 0 1 2 3
3 0 1 2 3

Ou trier par colonne en utilisant index

> df <- df[colnames(df)[c(4,1:3)]]
> df
  a b c d
1 0 1 2 3
2 0 1 2 3
3 0 1 2 3
12
Siya Qalistic

Si vous voulez le faire de manière tidyverse, essayez add_column de tibble, ce qui vous permet de spécifier où placer la nouvelle colonne avec .before ou .after paramètre:

library(tibble)

df <- data.frame(b = c(1, 1, 1), c = c(2, 2, 2), d = c(3, 3, 3))
add_column(df, a = 0, .before = 1)

#   a b c d
# 1 0 1 2 3
# 2 0 1 2 3
# 3 0 1 2 3
5
mt1022

Les réponses précédentes montrent 3 approches

  1. En créant un nouveau bloc de données
  2. En utilisant "cbind"
  3. En ajoutant la colonne "a" et en triant le cadre de données par colonnes en utilisant des noms de colonnes ou des index

Laissez-moi montrer l'approche n ° 4 "en utilisant" cbind "et" renommer "qui fonctionne pour mon cas

1. Créer un bloc de données

df <- data.frame(b = c(1, 1, 1), c = c(2, 2, 2), d = c(3, 3, 3))

2. Obtenir les valeurs pour la "nouvelle" colonne

new_column = c(0, 0, 0)

3. Combiner "nouvelle" colonne avec existé

df <- cbind(new_column, df)

4. Renommez le "nouveau" nom de colonne

colnames(df)[1] <- "a"

2
andrii

cbind est un ordre inhérent par son ordre d'argument.

Utilisez vos premières colonnes comme premier argument

cbind (fst_col, df)

  fst_col   df_col1   df_col2
1 0             0.2      -0.1
2 0             0.2      -0.1
3 0             0.2      -0.1
4 0             0.2      -0.1
5 0             0.2      -0.1

cbind (df, last_col)

  df_col1   df_col2  last_col
1 0.2      -0.1             0
2 0.2      -0.1             0
3 0.2      -0.1             0
4 0.2      -0.1             0
5 0.2      -0.1             0
1
Luis Martins