将适当的子集四分位数附加到数据集

时间:2019-03-28 04:34:40

标签: r dplyr data-manipulation quartile

我正在尝试将两列添加到NBA球员数据集中。第一列将确定数据集内所有玩家中年龄的四分位数。第二个附加列将确定单个球员的年龄位于其位置(例如,控球后卫,小前锋,中锋等)中的哪个四分位数。我可以使用dplyr软件包根据玩家的位置计算年龄的四分位数,但是我不知道如何将其重新加入原始数据集,甚至不知道采用哪种正确方法。

我已经使用dplyr来根据位置计算年龄的四分位数。曾尝试使用诸如Fuzzyjoin之类的其他程序包,但对使用它们感到不舒服。

#Incorporate necessary packages
library(ballr)
library(magrittr)
library(dplyr)
library(tidyverse)


#Establish full player table
players <- NBAPerGameAdvStatistics(season = 2018)

#Calculates Quartiles for Each Position

Pos_quartiles <- players %>% 
  group_by(pos) %>% 
  summarise(age = list(enframe(quantile(age, probs=c(0.25,0.5,0.75,1.0))))) %>% 
  unnest

我希望该运动员数据集包含664个观察值和32个变量,此程序的结果是添加了最后两个变量。其他各行将根据所包含的所有球员显示球员的年龄四分位数,并根据其位置显示球员的年龄四分位数。

1 个答案:

答案 0 :(得分:0)

我们可以结合使用<com.google.android.material.floatingactionbutton.FloatingActionButton android:src="@drawable/perfect_fit_circle_image" app:maxImageSize="56dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 和分位数来获得适当的四分位数

base::cut

请注意 quar_pos 中出现错误时我使用了library(dplyr) players %>% mutate(quar_all=cut(age, breaks=c(0,quantile(age, probs=c(0.25,0.5,0.75,1.0))),labels = FALSE)) %>% group_by(pos) %>% mutate(quar_pos=cut(age, breaks=unique(c(0,quantile(age, probs=c(0.25,0.5,0.75,1.0)))),labels = FALSE))

  

cut.default(age,breaks =分位数(age,probs = c(0.25,0.5,:     “休息”不是唯一的

对于类似的错误,unique由Didzis Elferts here提出,因此正如Didzis所提到的,期望受影响群体的四分位数更少。