Подтвердить что ты не робот

Как добавить новый столбец в фреймворк данных (на передний план не заканчивается)?

Как добавить новую переменную в существующий фрейм данных, но я хочу добавить его в передний конец. например. мой dataframe

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

Я хочу добавить новую переменную a, поэтому фреймворк будет выглядеть как

a b c d
0 1 2 3
0 1 2 3
0 1 2 3
4b9b3361

Ответ 1

Используйте cbind, например.

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

даяние:

> 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

Ответ 2

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

Ответ 3

Добавить столбец "a"

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

Сортировка по столбцу с использованием имени colum

> 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

Или отсортировать по столбцу с помощью индекса

> 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

Ответ 4

Предыдущие ответы показывают 3 подхода

  • Создав новый фрейм данных
  • Используя "cbind"
  • Добавляя столбец "a" и сортируя кадр данных по столбцам с использованием имен столбцов или индексов

Позвольте мне показать подход №4 "Используя" cbind "и" rename ", который работает для моего случая

1. Создание фрейма данных

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

2. Получить значения для "нового" столбца

new_column = c(0, 0, 0)

3. Объедините "новый" столбец с существующим

df <- cbind(new_column, df)

4. Переименуйте имя нового столбца

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

Ответ 5

Если вы хотите сделать это с помощью tidyverse, попробуйте add_column из tibble, что позволяет указать, где разместить новый столбец с параметром .before или .after:

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

Ответ 6

cbind присваивает порядок своим порядком аргументов.

Пользователь ваш первый столбец (столбцы) как ваш первый аргумент

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