Невозможно переименовать столбец, который не существует в R - PullRequest
0 голосов
/ 12 апреля 2020

Я довольно плохо знаком с R и работаю над школьным заданием. Мне пришлось прочитать в файле Excel и переименовать несколько столбцов. У меня есть следующий код:

library(tidyverse)
library(readxl)

UN_migrant <- read_excel("UN_migrant.xlsx", 
    sheet = "Table 6", skip = 15)

UN_migrant <- UN_migrant %>%
  rename(
    Country = `..2`,
    Country_Code = `..4`,
    Type = `..5`,
    "1990" = "1990...6",
    "1995" = "1995...7",
    "2000" = "2000...8",
    "2005" = "2005...9",
    "2010" = "2010...10",
    "2015" = "2015...11"
  )

Migration <- select(UN_migrant, Country, Country_Code, Type,
                    "1990", "1995", "2000", "2005", "2010", "2015")

head(Migration)

Когда я запускаю код, он переименовывает его, но я получаю следующую ошибку:

"Error: Can't rename columns that don't exist. x The column `..2` doesn't exist."

Я провел поиск и попытался двойные кавычки вокруг ... 2, 4 и 5, но я все еще получаю ту же ошибку. Я также пытался вызвать переименование специально из dplyr, используя dplyr::rename(), и я все еще получал то же сообщение об ошибке.

Это имена столбцов во фрейме данных

colnames(UN_migrant)
 [1] "...1"      "...2"      "...3"      "...4"      "...5"      "1990...6"  "1995...7" 
 [8] "2000...8"  "2005...9"  "2010...10" "2015...11" "1990...12" "1995...13" "2000...14"
[15] "2005...15" "2010...16" "2015...17" "1990-1995" "1995-2000" "2000-2005" "2005-2010"
[22] "2010-2015"

Может кто-нибудь объяснить, почему я получаю эту ошибку, и поделиться некоторыми документами.

1 Ответ

0 голосов
/ 12 апреля 2020

Мы можем сделать код короче с rename_at

library(dplyr)
 UN_migrant %>%
      rename(
          Country = `...2`,
          Country_Code = `...4`,
          Type = `...5`) %>%         
       rename_at(vars(contains('..')), ~ str_remove(.,  "\\.\\..*"))
...