How can you add columns or rows to a data frame in R
1 – CBIND () to add columns
> iris_small
Sepal.Length Sepal.Width Petal.Length Petal.Width
1 5.1 3.5 1.4 0.2
2 4.9 3.0 1.4 0.2
3 4.7 3.2 1.3 0.2
51 7.0 3.2 4.7 1.4
52 6.4 3.2 4.5 1.5
53 6.9 3.1 4.9 1.5
101 6.3 3.3 6.0 2.5
102 5.8 2.7 5.1 1.9
103 7.1 3.0 5.9 2.1
Say, we want to add the species column.
> species = c("Setosa","Setosa","Setosa","Virginica","Virginica","Virginica","Versicolor","Versicolor","Versicolor")
use “Column” bind – CBIND() function to add the species vector as a new column.
> iris_small_species = cbind(iris_small,species)
> iris_small_species
Sepal.Length Sepal.Width Petal.Length Petal.Width species
1 5.1 3.5 1.4 0.2 Setosa
2 4.9 3.0 1.4 0.2 Setosa
3 4.7 3.2 1.3 0.2 Setosa
51 7.0 3.2 4.7 1.4 Virginica
52 6.4 3.2 4.5 1.5 Virginica
53 6.9 3.1 4.9 1.5 Virginica
101 6.3 3.3 6.0 2.5 Versicolor
102 5.8 2.7 5.1 1.9 Versicolor
103 7.1 3.0 5.9 2.1 Versicolor
CBIND() is good if you want to add data programmatically – say in a loop. If you want to do it ad-hoc, you can dynamically do it using the
2- $ method.
> iris_small$species = species
> iris_small
Sepal.Length Sepal.Width Petal.Length Petal.Width species
1 5.1 3.5 1.4 0.2 Setosa
2 4.9 3.0 1.4 0.2 Setosa
3 4.7 3.2 1.3 0.2 Setosa
51 7.0 3.2 4.7 1.4 Virginica
52 6.4 3.2 4.5 1.5 Virginica
53 6.9 3.1 4.9 1.5 Virginica
101 6.3 3.3 6.0 2.5 Versicolor
102 5.8 2.7 5.1 1.9 Versicolor
103 7.1 3.0 5.9 2.1 Versicolor