Добавить новую переменную в определенную позицию в кадре данных без указания нумерованной позиции - PullRequest
2 голосов
/ 20 сентября 2019

В Stata я могу создать переменную после или перед другой.Например, gen age =., После (пол)

Я хотел бы сделать то же самое в R. Это возможно?

В моей базе данных 300 переменных, поэтому я не хочу считатьчтобы узнать его номерную позицию, а также я могу время от времени меняться.

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

Вы можете сделать:

library(tibble) 

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

add_column(data, d = "", .after = "b")

# a b d c
# 1 1   1
# 2 2   2
# 3 3   3

Или другой способ может быть:

data.frame(append(data, list(d = ""), after = match("b", names(data))))
0 голосов
/ 20 сентября 2019

Сначала добавьте новый столбец в конец вашего фрейма данных.Затем найдите индекс столбца, после которого вы хотите, чтобы этот новый столбец действительно появился, и интерполируйте его:

df$new_col <- ...
index <- match("col_before", names(df))
df <- df[, c(names(df)[c(1:index)], "new_col", names(df)[c((index+1):(ncol(df)-1))])]

Пример:

df <- data.frame(v1=c(1:3), v2=c(4:6), v3=c(7:9))
df$new_col <- c(7,7,7)
index <- match("v2", names(df))
df <- df[, c(names(df)[c(1:index)], "new_col", names(df)[c((index+1):(ncol(df)-1))])]
df

  v1 v2 new_col v3
1  1  4       7  7
2  2  5       7  8
3  3  6       7  9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...