경기도 인공지능 개발 과정/R

R 서울시 역세권 아파트 가격 분석

agingcurve 2022. 4. 19. 16:55
반응형

지하철역 주변 아파트 시세 분석 '지하철역 주변의 아파트 시세를 알아보고, 지하철역에서 아파트까지의 거리에 따라 가격 분포가 어떻게 다른지를 비교

 

결과 시각화 : 구글 지도를 활용하여 서울시 지도에 지하철역과 주변 아파트 실거래가 표시

 

 

install.packages("ggmap")
library(ggmap)
library(dplyr)

station_data <- read.csv("역별_주소_및_전화번호.csv")

# 속성 확인
str(station_data)


station_code <- as.character(station_data$구주소)

head(station_code,5) 


library(ggmap)

googleAPIkey <- "--------------------------------------------------------"

register_google(googleAPIkey)

station_code <- geocode(station_code)
head(station_code)

station_code <- as.character(station_data$구주소) %>% enc2utf8() %>% geocode()
head(station_code) -> 구글 맵스를 이용하여 위도 경도 정보가 불러와짐


station_code_final <- cbind(station_data, station_code)
head(station_code_final) # station_code_final의 앞부분 확인


library(readxl)
apart_data <- read.csv("아파트_실거래가.csv")
apart_data


head(apart_data)
# 전용면적의 값을 반올림하여 정수로 표현
apart_data$전용면적 <- round(apart_data$전용면적)
head(apart_data)

# 전용면적을 기준으로 빈도를 구한 후, 빈도에 따라 내림차순 정렬
count(apart_data, 전용면적) %>% arrange(desc(n)) %>% head()

# 전용면적이 85인 데이터만 추출하여 aprat_data 85에 할당
apart_data_85 <- subset(apart_data, 전용면적 == "85")
head(apart_data_85) # apart_data_85 앞부분 확인

apart_data_85$거래금액 <- gsub(",","",apart_data_85$거래금액)
head(apart_data_85)
apart_data_85_cost <- aggregate(as.integer(거래금액) ~ 단지명,
                                     apart_data_85, mean)
head(apart_data_85_cost)

apart_data_85_cost <- rename(apart_data_85_cost,
                             "거래금액" = "as.integer(거래금액)")
head(apart_data_85_cost)

apart_data_85 <- apart_data_85[!duplicated(apart_data_85$단지명),]

head(apart_data_85) # 결과 확인하기

apart_data_85 <- left_join(apart_data_85, apart_data_85_cost, by="단지명")
head(apart_data_85)

apart_data_85 <- apart_data_85 %>% select("단지명","시군구","번지",
                                          "전용면적","거래금액.y")
head(apart_data_85)

apart_data_85 <- rename(apart_data_85, "거래금액" ="거래금액.y")
head(apart_data_85)

apart_address <- paste(apart_data_85$시군구, apart_data_85$번지)
head(apart_address)

apart_address <- paste(apart_data_85$시군구, apart_data_85$번지) %>%
  data.frame()
head(apart_address)

apart_address <- rename(apart_address,"주소" =".")
head(apart_address)

apart_address_code <- as.character(apart_address$주소) %>%
  enc2utf8() %>% geocode()

head(apart_data_85)
head(apart_address)
head(apart_address_code)

apart_code_final <- cbind(apart_data_85,apart_address,apart_address_code) %>%
  select("단지명","전용면적","거래금액","주소",lon,lat)
apart_code_final

# 마포구 지도 정보를 가져와 mapo_map에 저장
mapo_map <- get_googlemap("mapogu",maptype = "roadmap", zoom=11)

ggmap(mapo_map) # 구글 지도 호출


library(ggplot2)
library(ggmap)

ggmap(mapo_map) + 
  geom_point(data = station_code_final, aes(x= lon, y=lat), color = "red",
             size = 3) +
  geom_text(data = station_code_final, aes(label = 역명,vjust=-1))


hongdae_map <- get_googlemap("hongdae station", maptype = "roadmap", zoom=15)
)

# 홍대입구역 지도에 지하철 정보 및 아파트 정보 일괄 표시
ggmap(hongdae_map) +
  geom_point(data = station_code_final, aes(x = lon, y = lat), colour = "red", size = 1) +
  geom_text(data = station_code_final, aes(label = 역명, vjust = -1)) + 
  geom_point(data = apart_code_final, aes(x = lon, y = lat)) + 
  geom_text(data = apart_code_final, aes(label = 단지명, vjust = -1)) + 
  geom_text(data = apart_code_final, aes(label = 거래금액, vjust = 1), colour = "red")

 

'경기도 인공지능 개발 과정 > R' 카테고리의 다른 글

R 자연어 처리  (0) 2022.04.25
R 야구 데이터 분석  (0) 2022.04.19
R ggplot2  (0) 2022.04.17
R 이상치  (0) 2022.04.17
R 결측치  (0) 2022.04.17