R: dplyr::group_by не удалось на фрейме данных pxR

dplyr::group_by() не удается сгруппировать переменные следующего data.frame, содержащегося в файле оси ПК:

library("pacman")
pacman::p_load(pxR, dplyr, janitor)
px_file <- "https://www.pxweb.bfs.admin.ch/DownloadFile.aspx?file=px-x-1502040100_131"
pxR::read.px(base::url(px_file))$DATA$value %>% # the data.frame
  janitor::clean_names() %>%
  dplyr::select (student_level = studienstufe, 
                 year = jahr, 
                 counts = value) %>% # dplyr::rename() also fails
  dplyr::group_by (year, student_level) %>% # not grouping!
  dplyr::summarise(totals = sum (counts))

Я считаю, что это может быть связано с проблемой кодировки, но я не могу найти проблему. Есть идеи? Благодарю.

1 ответ

Решение

Единственная ошибка, которую я смог найти, это то, что вы используете select вместо rename, Вы написали это rename не работал для вас. Это сработало для меня:

library("pacman")
library("dplyr")
library("janitor")

# Loading your data
pacman::p_load(pxR, dplyr, janitor)
px_file <- "https://www.pxweb.bfs.admin.ch/DownloadFile.aspx?file=px-x-1502040100_131"
px <- pxR::read.px(base::url(px_file))$DATA$value

# Cleaning the column names
px1 <- px %>% janitor::clean_names()

# Rename the columns
px2 <- px1 %>%
  dplyr::rename (student_level = studienstufe, 
                 sex = geschlecht,
                 year = jahr, 
                 counts = value) 

# Grouping data
px3 <- px2 %>%
  dplyr::group_by (year, student_level) %>%
  dplyr::summarise(totals = sum (counts))

Я разделяю каждый шаг на собственный фрейм данных, чтобы увидеть результат. Это не обязательно.

Если это не работает, вы можете загрузить информацию о сеансе.

PS я тоже переименовал колонку geschlecht:)

Другие вопросы по тегам