【发布时间】:2019-09-27 23:46:36
【问题描述】:
R head() 和 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))
有人遇到过这样的问题吗?谢谢!
【问题讨论】:
-
See here 提出一个人们可以帮助解决的 R 问题。这包括数据样本、所有必要的代码,以及对您正在尝试做的事情和没有奏效的事情的清晰解释。
-
在链尾添加
%>% data.frame()并检查。Top_Ten_Drug_Subclass %>% head(10) %>% data.frame -
@Ronak Shah - 感谢您抽出宝贵时间帮助解决我的问题。 Data.frame 已被弃用,因此没有帮助。 Top_Ten_Drug_Subclass 的类已经是 'tbl_df'。
标签: r dplyr tidyverse head top-n