Смещение имен столбцов на 10 столбцов - PullRequest
0 голосов
/ 27 октября 2018

У меня есть следующий код для импорта некоторых данных.

url <- "https://finance.yahoo.com/industry/Scientific_Technical_Instruments"

library(rvest)

read <- read_html(url) %>%
  html_table() 

library(plyr)

data <- ldply(read, data.frame)

Однако данные создают фрейм данных из 20 столбцов, когда их должно быть только 10. Имена столбцов фрейма данных не были импортированы должным образом и создают ряд значений NA.

Есть ли способ в R сместить имена столбцов по горизонтали, а затем удалить созданные столбцы NA?

Ответы [ 2 ]

0 голосов
/ 27 октября 2018
my_data <- data.frame(read[[2]])
colnames(my_data) <- colnames(read[[1]])
0 голосов
/ 27 октября 2018

Ваш объект read - это список с заголовками в качестве первого элемента и данными в качестве второго. Ваша проблема в том, что имена ваших столбцов в read[[1]] не являются синтаксически допустимыми именами для столбцов фрейма данных.

Вам нужно санировать свои имена, используя make.names. Э.Г.

data <- data.frame(read[[2]]) 
names(data) <- make.names(names(read[[1]])

Однострочную версию для этого можно найти в здесь .

data <- setNames(data.frame(read[[2]]), make.names(names(read[[1]])))
...