0

Rhead()top_n函数正在从我的两个数字列中删除小数,我不知道为什么?

我将R 3.4.4与 RStudio 1.2.5 和dplyr. 我有一个数据集,其中包含 4 个数字列以及其他四种类型的列。我正在尝试使用像这样的简单 head(10) 从该数据集中获取前十行

Top_Ten_Drug_Subclass %>% 
  head(10)

删除数字列的小数之一。对于前 - 而不是 25.63,它显示 25。第二列仅显示 1 个小数(前 - 25.6),而其他两个在我需要的数字后显示两个小数点。我只是很困惑为什么 head() 或 top_n() 函数会改变格式。可能解释下面的代码将有助于解决这个谜团。如果我只是通过“ungroup ()”运行下面的代码,它会为 allowed_amount 列提供正确的格式。一旦我使用 head() 或 top_n(),Allowed_Amount 的格式就会作为整数返回,但是,基础类型仍然是数字/双精度。现在这很奇怪。

    All_Rx_Data_201907 %>% 
  filter(PLAN_ID %like% 'xxxxx' & `MONTH/YEAR` == '062019') %>% 
  inner_join(MemCountPerDrugClass, by = "DRUG_SUBCLASS") %>% 
  select(`MONTH/YEAR`, DRUG_SUBCLASS, DRUG_SUBCLASS_NAME, SCRIP_COUNT, ALLOWED_AMOUNT, PAID_AMOUNT, MEMBER_NUM) %>%
  group_by(`MONTH/YEAR`, DRUG_SUBCLASS, DRUG_SUBCLASS_NAME, MEMBER_NUM) %>% 
  summarise(SCRIP_COUNT = sum(SCRIP_COUNT), ALLOWED_AMOUNT = sum(ALLOWED_AMOUNT), PAID_AMOUNT = sum(PAID_AMOUNT)) %>% 
  mutate(Allowed_Cost_Per_Member = round((ALLOWED_AMOUNT/MEMBER_NUM), 2)
         , Allowed_Cost_Per_Script = round((ALLOWED_AMOUNT/SCRIP_COUNT), 2)) %>% 
  arrange(desc(ALLOWED_AMOUNT)) %>% 
  ungroup() %>% 
  top_n(10, ALLOWED_AMOUNT) %>% 
  arrange(desc(Allowed_Cost_Per_Script))

有没有人遇到过这样的问题?谢谢!

4

1 回答 1

0

Head() 应该返回数据而不转换任何值。您是否尝试过确认数据集的数据类型?确认您的数据没有被摄取为整数,导致小数点消失。您可以使用 str(Top_Ten_Drug_Subclass) 函数。

Int 是整数,num 是数字。

Example: 

'data.frame':   2 obs. of  3 variables:
 $ N  : int  1 2
 $ Age : num  21.5 15.0
 $ Name: Factor w/ 2 levels "Dora","John": 2 1
于 2019-09-28T00:07:14.600 回答