Могу ли я прочитать файл Excel и сохранить буквы как имена столбцов в R? - PullRequest
1 голос
/ 04 августа 2020

Я пытаюсь прочитать файл .xlsx. Я хочу сохранить имена столбцов в Excel (те, которые go от A до Z, а затем продолжить с AA AB et c) и использовать их в качестве имен столбцов для моих data.frame .

есть ли простой способ импортировать Excel и использовать их в качестве заголовков?

Диапазон: BR: CI (остальное мне не нужно)

код, который я использую:

data = read.xlsx( # Reads only the relevant part of the data
  xlsxFile = "E:/data.xlsx",
  sheet = 1,
  colNames = F, 
  cols = c(70:87), #Cols BR-CI
  startRow = 2 )

Результат, который я получаю:

> head(data)
     X1    X2    X3    X4    X5    X6    X7    X8    X9   X10   X11   X12   X13   X14   X15   X16    X17    X18
1 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 204552 204552
2 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 204552 204552
3 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 204552 204552
4 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 204552 204552
5 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 204552 204552
6 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 204552 204552

Результат, который я хочу

> head(data)
     BR    BS    BT    BU    BV    BW    BX    BY    BZ    CA    CB    CC    CD    CE    CF    CG     CH     CI
1 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 204552 204552
2 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 204552 204552
3 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 204552 204552
4 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 204552 204552
5 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 204552 204552
6 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 25569 204552 204552

Ответы [ 2 ]

3 голосов
/ 04 августа 2020

Пакет openxlsx имеет функцию int2col() для преобразования целых чисел в индексы столбцов Excel. Кажется, вы не можете установить имена как часть импорта, но вы можете сделать:

library(openxlsx)

data = read.xlsx( # Reads only the relevant part of the data
  xlsxFile = "E:/data.xlsx",
  sheet = 1,
  colNames = F, 
  cols = c(70:87), #Cols BR-CI
  startRow = 2 )

names(data) <- int2col(70:87)

Где int2col(70:87) дает:

 [1] "BR" "BS" "BT" "BU" "BV" "BW" "BX" "BY" "BZ" "CA" "CB" "CC" "CD" "CE" "CF" "CG" "CH" "CI"
0 голосов
/ 04 августа 2020

Может попробовать:

data = read.xlsx( # Reads only the relevant part of the data
  xlsxFile = "E:/data.xlsx",
  sheet = 1,
  colNames = F, 
  cols = c(70:87), #Cols BR-CI
  startRow = 2 )

names = read.xlsx(
 xlsxFile = "E:/data.xlsx",
 sheet = 1,
 colNames = T, #Changed this from your code to TRUE
 cols = c(70:87), #Cols BR-CI
 startRow = 1 ) ) # Change this from your code to start a row above

colnames(data) <- colnames(names)
...