首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:每次销售前的上一年房屋销售量

R:每次销售前的上一年房屋销售量
EN

Stack Overflow用户
提问于 2020-09-22 00:50:31
回答 1查看 29关注 0票数 0

作为same projectprevious one的后续问题

我发现房地产通常是用库存时间来衡量的,库存时间的定义是(活跃挂牌数量)/(每月房屋销售数量,过去12个月的平均值)。在每一次房屋销售之前,我能找到的统计过去12个月内售出房屋数量的最好方法是通过for循环。

代码语言:javascript
复制
homesales$yearlysales = 0

for (i in 1:nrow(homesales))
{
        sdt = as.Date(homesales$saledate[i])
        x <- homesales %>% filter( sdt - saledate >= 0 & sdt - saledate < 365) %>% summarise(count=n())
        homesales$yearlysales[i] =x$count[1]
}

homesales$inventorytime = homesales$inventory / homesales$yearlysales * 12
homesales$inventorytime[is.na(homesales$saledate)] = NA
homesales$inventorytime[homesales$yearlysales==0] = NA

显然(?),R语言对使用for循环进行这种类型的选择有一些偏见。有没有更好的方法?

附录1.数据表结构

代码语言:javascript
复制
address, listingdate, saledate
101 Street, 2017/01/01, 2017/06/06
106 Street, 2017/03/01, 2017/08/11
102 Street, 2017/05/04, 2017/06/13
109 Street, 2017/07/04, 2017/11/24
...

附录2.我要查找的输出类似于this

EN

回答 1

Stack Overflow用户

发布于 2020-09-22 02:11:24

以下是任意一天的活动房源数量:

代码语言:javascript
复制
library(tidyverse)
library(lubridate)

tmp <- tempfile()
download.file("https://raw.githubusercontent.com/robhanssen/glenlake-homesales/master/homesalesdata-source.csv", tmp)

data <- read_csv(tmp) %>% 
  select(ends_with("date")) %>% 
  mutate(across(everything(), mdy)) %>% 
  pivot_longer(cols = everything(), names_to = "activity", values_to ="date", names_pattern = "(.*)date")

active <- data %>% 
  mutate(active = if_else(activity == "listing", 1, -1)) %>% 
  arrange(date) %>% 
  mutate(active = cumsum(active)) %>% 
  group_by(date) %>% 
  filter(row_number() == n()) %>% 
  select(-activity)

tibble(date = seq(min(data$date, na.rm = TRUE), max(data$date, na.rm = TRUE), by = "days")) %>% 
  left_join(active) %>% 
  fill(active)

基本上,我们旋转更长的轴,并将每行数据拆分为两行,表示不同的活动:添加列表或删除列表。然后,累加总和就会给出活动列表的数量。

请注意,这假设您没有丢失任何数据。根据制作csv的规范,您可能会在开始或结束时遗漏活动。但这是对csv本身的警告。

活跃的列表是一个关于时间瞬间的事实。销售是关于一段时间的事实。您可能希望按月汇总销售额,然后使用该月最后一天的活动列表数量,或者该月的平均列表数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63996697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档