【发布时间】:2021-07-20 01:21:51
【问题描述】:
我有一组房地产数据。我正在尝试在市场组(标记为 DOM_Groups)上创建一个新的天数列,并将它们分组为 15 天的间隔(即 0-14、15-29 等)。然后我尝试通过观察次数和每个 15 天组的平均售价来 summarize() 这些分组。
我正在使用cut() 函数试图将我的 DOM_Groups 分成这 15 天的间隔。在我导入的基本电子表格中,包含上市天数的列在每个单元格中都有一个唯一的观察值,并且该列中的数据是数字整数...没有小数,没有负数。
当我运行以下代码时,tibble 输出没有正确分组,它包含一个带小数的负数,这在我的数据集中不存在。我不知道该怎么做才能纠正这个问题。
gibbsMkt %>%
mutate(DOM_Groups = cut(DOM, breaks = 15, dig.lab = 2)) %>%
filter(Status == "SOLD") %>%
group_by(DOM_Groups) %>%
summarize(numDOM = n(),
avgSP = mean(`Sold Price`, na.rm = TRUE))
The tibble output I get is this:
DOM_Groups numDOM avgSP
<fct> <int> <dbl>
1 (-0.23,16] 74 561675.
2 (16,31] 18 632241.
3 (31,47] 11 561727.
4 (47,63] 8 545862.
5 (63,78] 7 729286.
6 (78,94] 6 624167.
7 (1.4e+02,1.6e+02] 2 541000
8 (1.6e+02,1.7e+02] 1 535395
另外,对于 tibble 中的第 7 行和第 8 行,最大的数字是 164,所以我也不明白为什么要将这些行转换为科学计数法。
当我使用 Excel 数据透视表时,我得到了想要在 R 中重现的输出,如下所示:
如何使用正确的代码在 R 中重现这一点?
【问题讨论】:
-
这些只是标签,并不意味着你有负数:
levels(cut(rpois(1000, 1), breaks = 15))和breaks = 15意味着你会得到 15 个区间,而不是将数据切割成 15 个单位的区间 -
抱歉,这不是粗鲁,但这并不能帮助我理解如何使用正确的代码在 R 中从 Excel 重新创建数据透视表。由于我想要 15 天的小组,我该如何完成?另外,为什么小标题显示的是负数?