#r #readxl
#r #readxl
Вопрос:
Я пытаюсь перенести этот файл .xls в R:https://www.reit.com/sites/default/files/returns/MonthlyHistoricalReturns.xls
Я попытался ввести его непосредственно с URL-адреса на компьютере с Windows. Я уже сталкивался с проблемами https и http, а также с проблемой perl для Windows. Чтобы обойти это, я попытался запустить на ubuntu, а также сначала загрузить файл.
Мои последние две попытки с readxl и gdata создают фрейм данных, хотя ни в одном из них нет данных. Сообщений об ошибках нет.
NAREIT <- readxl::read_xls("~/Downloads/MonthlyHistoricalReturns.xls")
Это приводит к 38 наблюдениям одной переменной, все NA.
NAREIT <- gdata::read.xls("~/Downloads/MonthlyHistoricalReturns.xls")
И это приводит к 0 наблюдениям за 1 переменной, «В таблице отсутствуют данные» — это текст, записанный внутри единственной ячейки.
Файл, по общему признанию, уродлив, с несколькими ненужными строками заголовка, объединенными ячейками, замороженными представлениями и т.д. Я попытался указать диапазоны, столбцы, строки, строки для пропуска, имена столбцов и т.д. — Все, что я мог придумать из документации readxl и gdata.
Я могу просто сократить нужный мне диапазон, сохранить как CSV и работать с ним. Но, поскольку мне, вероятно, придется регулярно возвращаться к этому, я ищу «правильный» способ открыть этот файл. Любые мысли приветствуются.
Ответ №1:
Похоже, что есть несколько строк заголовка, поэтому вам нужно будет выяснить, что вы хотели бы использовать в качестве заголовка, или на самом деле просмотреть несколько страниц по stack overflow, которые показывают вам, как работать с заголовками 2 строк.
В любом случае, я могу импортировать его таким образом, и, похоже, все в порядке
library(readxl)
MonthlyHistoricalReturns <- read_excel("MonthlyHistoricalReturns.xls", sheet = "Index Data", skip = 7)
Я перешел к строке 7, чтобы начать ваш заголовок там
Комментарии:
1. Интересно. Проблема, похоже, была с именем листа. Я попробовал почти точно то, что вы предложили, с skip = 7, чтобы избежать строк заголовка, и в итоге получил DF из 31 наблюдения 1 переменной. Я также попытался указать лист как 1, и это единственный лист. Вызов листа по имени делает свое дело. Большое спасибо!