Чтобы решить проблему получения факторной переменной, а не целого числа после использования "row_to_names" в r - PullRequest
0 голосов
/ 06 мая 2020
Модель серии

для прогнозирования урожайности и включения их в другие формулы для создания прогноза sh арендной платы.

Я хочу показать названия округов в столбцах и годы в строках в фрейме данных.

Итак, у меня есть вектор, содержащий имена трех округов, все элементы которых взяты из другого фрейма данных. Я хочу поместить их во все фреймы данных и назвать столбцы, чтобы извлечь их. Теперь я просто использую пример.

ct_name <- c("Adams","Boone","Champaign")

И я хочу объединить это с моей таблицей фрейма данных прогнозируемой доходности.

library(janitor)
table<- matrix(1:6,nrow = 2, ncol = 3, byrow = FALSE)
rownames(table) <- c("2015", "2016")
table <- rbind(ct_name, table)
table <- row_to_names(table, row_number = 1)
table <- data.frame(table)

В матрице были целые числа. Однако после использования row_to_names() все становится факторами или logi c. Как я могу решить эту проблему. Я попробовал is.numeric() and is.integer(), но ничего не вышло, и мне нужно, чтобы они были целыми числами для выполнения расчетов!

Как мне это сделать? Спасибо, ребята!

Ответы [ 2 ]

2 голосов
/ 06 мая 2020

Непонятно, почему вы использовали rbind() для добавления имен столбцов в виде строки в таблице, а затем row_to_names() для создания имен столбцов. Как только вы rbind() преобразуете вектор символов в матрицу целых чисел, все данные в матрице будут преобразованы в символы. Ответ Ронака кажется хорошим решением.

2 голосов
/ 06 мая 2020

Названия ваших округов пусты, но если у вас есть настоящие имена, вы должны сделать:

colnames(table) <- ct_name

Если вы хотите изменить матрицу на фрейм данных, просто сделайте

table <- data.frame(table)

Также table - это функция в R, поэтому будет лучше, если вы назовете свои объекты другим именем.

...