Сдвинуть имена столбцов на один левее в R - PullRequest
0 голосов
/ 16 июня 2020

Я уже давно пытаюсь сделать это:

Я хочу переместить заголовки листа Excel на один столбец вверх в R:

Пример:

До:

NO  Id  AGE  Gender
XY  24  F
fg  67  M

После:

Id  Age  Gender
XY  24   F
fg  67   M

Это большая таблица с 58 000 строками и 500 столбцами. Так что нужно как-то без именования каждого отдельного столбца.

Спасибо :)

Ответы [ 4 ]

1 голос
/ 17 июня 2020

Если имя столбца NO должно быть удалено, вы можете использовать

names(data)[1:(ncol(data)-1)] <- names(data)[2:ncol(data)]
data[, ncol(data)] <- NULL

Вы сначала сдвинете имена столбцов влево на одну позицию, а затем удалите последний столбец вашего фрейма данных data.

0 голосов
/ 17 июня 2020

Просто удалите первый элемент из имен столбцов:

names(x) = names(x)[-1]
0 голосов
/ 16 июня 2020

Данные:

data <- tibble::tribble(
  ~NO, ~Id, ~Age, ~Gender, ~month, ~year,
  "XY", 24, "F", NA, 1990, NA,
  "fg", 67, "M", NA, 1991, NA,
  "dZ", 32, "M", NA, 1992, NA
)
data
# A tibble: 3 x 6
  NO       Id Age   Gender month year 
  <chr> <dbl> <chr> <lgl>  <dbl> <lgl>
1 XY       24 F     NA      1990 NA   
2 fg       67 M     NA      1991 NA   
3 dZ       32 M     NA      1992 NA 

names(data) <- names(data)[2:ncol(data)]
data <- data[head(seq_len(ncol(data)), -1)]
data

# A tibble: 3 x 5
  Id      Age Gender month  year
  <chr> <dbl> <chr>  <lgl> <dbl>
1 XY       24 F      NA     1990
2 fg       67 M      NA     1991
3 dZ       32 M      NA     1992

Или, если последний столбец пуст, вы можете сделать так:

data[] <- cbind(seq_len(nrow(data)), data[head(seq_along(data), -1)])
data$NO <- NULL
data
# A tibble: 3 x 5
  Id      Age Gender month  year
  <chr> <dbl> <chr>  <lgl> <dbl>
1 XY       24 F      NA     1990
2 fg       67 M      NA     1991
3 dZ       32 M      NA     1992
0 голосов
/ 16 июня 2020

Хороший :)

x=data.table(a=1,b=2,c=3,d=4)
#> x
#   a b c d
#1: 1 2 3 4

names(x)[1:(ncol(x)-1)] = names(x)[2:(ncol(x))]
#> x
#   b c d d <-- the last colname gets duplicated of course
#1: 1 2 3 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...