R:dplyr::group_by 在 pxR 数据帧上失败
R: dplyr::group_by failing on a pxR data frame
dplyr::group_by()
无法对 pc-axis 文件中包含的以下 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))
我认为这可能是编码问题造成的,但我找不到问题所在。有任何想法吗?谢谢
我能找到的唯一错误是您使用 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))
我将每一步都拆分成一个自己的数据框来查看结果。这不是必须的。
如果这不起作用,您可以上传您的会话信息。
P.S。我还重命名了列 geschlecht
:)
dplyr::group_by()
无法对 pc-axis 文件中包含的以下 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))
我认为这可能是编码问题造成的,但我找不到问题所在。有任何想法吗?谢谢
我能找到的唯一错误是您使用 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))
我将每一步都拆分成一个自己的数据框来查看结果。这不是必须的。
如果这不起作用,您可以上传您的会话信息。
P.S。我还重命名了列 geschlecht
:)