【发布时间】:2021-05-13 03:32:30
【问题描述】:
我在尝试绘制图表时出错。这是错误信息。
'预计 2 件。缺少 1 行中用 NA 填充的部分 [24216]。错误:分面变量必须至少有一个值'
#Load Libaries
library(ggplot2)
library(dplyr)
options(scipen = 100000)
library(scales)
library(plotly)
library(tidyverse)
#Read dataset
ura <- read.csv('URAdata_new.csv')
#Data cleaning
ura <- ura %>% mutate(Date.of.Sale_month = str_split(ura$Date.of.Sale, '-', simplify = T)[, 1],
Date.of.Sale_year = str_split(ura$Date.of.Sale, '-', simplify = T)[, 2])
#Plotly Graph in issue
Plot2 <- ggplotly(ura %>%
separate(Date.of.Sale, c('Sale_year', 'Sale_month'), sep = '-') %>%
filter(Sale_year %in% c(16, 17) & Postal.District %in% c(2, 5)) %>%
group_by(Sale_year, Postal.District) %>%
summarize(avg_price = mean(Price....)) %>%
ggplot(aes(x = as.character(Postal.District), y = avg_price,
fill = as.factor(Sale_year))) +
geom_col() +
facet_grid(~ as.factor(Sale_year)) +
labs(x = 'Postal District', y = 'Average price',
title = 'Comparison of unit prices in district 2 and 5 between 2016 and 2017') +
scale_fill_discrete(name = "Year of sale", labels = c("2016", "2017"))+
theme(
plot.title = element_text(colour="red",size=10, face="bold.italic",hjust = 0.5),
axis.title.x = element_text(colour="blue",size=14, face="bold"),
axis.title.y = element_text(colour="green",size=14, face="bold"),
legend.title=element_text(size=8))+
scale_y_continuous(name="Average Price",labels = comma), main="foo")
Plot2
这些是我上面的代码。
输入(头部(ura,20)
structure(list(Project.Name = c("V ON SHENTON", "V ON SHENTON",
"STIRLING RESIDENCES", "PARC CLEMATIS", "STIRLING RESIDENCES",
"ONE PEARL BANK", "TWIN VEW", "WHISTLER GRAND", "WHISTLER GRAND",
"WHISTLER GRAND", "WHISTLER GRAND", "WHISTLER GRAND", "KENT RIDGE HILL RESIDENCES",
"KENT RIDGE HILL RESIDENCES", "KENT RIDGE HILL RESIDENCES", "KENT RIDGE HILL RESIDENCES",
"KENT RIDGE HILL RESIDENCES", "KENT RIDGE HILL RESIDENCES", "KENT RIDGE HILL RESIDENCES",
"STIRLING RESIDENCES"), Street.Name = c("SHENTON WAY", "SHENTON WAY",
"STIRLING ROAD", "JALAN LEMPENG", "STIRLING ROAD", "PEARL BANK",
"WEST COAST VALE", "WEST COAST VALE", "WEST COAST VALE", "WEST COAST VALE",
"WEST COAST VALE", "WEST COAST VALE", "SOUTH BUONA VISTA ROAD",
"SOUTH BUONA VISTA ROAD", "SOUTH BUONA VISTA ROAD", "SOUTH BUONA VISTA ROAD",
"SOUTH BUONA VISTA ROAD", "SOUTH BUONA VISTA ROAD", "SOUTH BUONA VISTA ROAD",
"STIRLING ROAD"), Type = c("Apartment", "Apartment", "Apartment",
"Apartment", "Apartment", "Apartment", "Apartment", "Apartment",
"Apartment", "Apartment", "Apartment", "Apartment", "Apartment",
"Apartment", "Apartment", "Apartment", "Apartment", "Apartment",
"Apartment", "Apartment"), Postal.District = c(1L, 1L, 3L, 5L,
3L, 3L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 3L
), Market.Segment = c("CCR", "CCR", "RCR", "OCR", "RCR", "RCR",
"OCR", "OCR", "OCR", "OCR", "OCR", "OCR", "RCR", "RCR", "RCR",
"RCR", "RCR", "RCR", "RCR", "RCR"), Tenure = c("99 yrs lease commencing from 2011",
"99 yrs lease commencing from 2011", "99 yrs lease commencing from 2017",
"99 yrs lease commencing from 2019", "99 yrs lease commencing from 2017",
"99 yrs lease commencing from 2019", "99 yrs lease commencing from 2017",
"99 yrs lease commencing from 2018", "99 yrs lease commencing from 2018",
"99 yrs lease commencing from 2018", "99 yrs lease commencing from 2018",
"99 yrs lease commencing from 2018", "99 yrs lease commencing from 2018",
"99 yrs lease commencing from 2018", "99 yrs lease commencing from 2018",
"99 yrs lease commencing from 2018", "99 yrs lease commencing from 2018",
"99 yrs lease commencing from 2018", "99 yrs lease commencing from 2018",
"99 yrs lease commencing from 2017"), Type.of.Sale = c("Resale",
"Resale", "New Sale", "New Sale", "New Sale", "New Sale", "New Sale",
"New Sale", "New Sale", "New Sale", "New Sale", "New Sale", "New Sale",
"New Sale", "New Sale", "New Sale", "New Sale", "New Sale", "New Sale",
"New Sale"), No..of.Units = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), Price.... = c(3548000L,
3490000L, 1987000L, 1745000L, 1227000L, 1702000L, 1899000L, 704380L,
1129960L, 1145540L, 1473540L, 1421880L, 1367000L, 1360000L, 3000000L,
870000L, 1711000L, 899000L, 870000L, 1249000L), Nett.Price.... = c("-",
"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
"-", "-", "-", "-", "-", "-"), Area..Sqft. = c(1518L, 1518L,
1055L, 1044L, 635L, 700L, 1249L, 441L, 764L, 764L, 990L, 958L,
775L, 786L, 1776L, 484L, 958L, 484L, 484L, 635L), Type.of.Area = c("Strata",
"Strata", "Strata", "Strata", "Strata", "Strata", "Strata", "Strata",
"Strata", "Strata", "Strata", "Strata", "Strata", "Strata", "Strata",
"Strata", "Strata", "Strata", "Strata", "Strata"), Floor.Level = c("46 to 50",
"46 to 50", "26 to 30", "06 to 10", "31 to 35", "21 to 25", "26 to 30",
"21 to 25", "21 to 25", "21 to 25", "31 to 35", "31 to 35", "01 to 05",
"01 to 05", "01 to 05", "01 to 05", "01 to 05", "01 to 05", "01 to 05",
"16 to 20"), Unit.Price...psf. = c(2338L, 2299L, 1884L, 1671L,
1932L, 2433L, 1521L, 1596L, 1479L, 1499L, 1488L, 1484L, 1764L,
1731L, 1689L, 1796L, 1786L, 1856L, 1796L, 1967L), Date.of.Sale = c("20-Jun",
"20-Jun", "20-Jun", "20-Jun", "20-Jun", "20-Jun", "20-Jun", "20-Jun",
"20-Jun", "20-Jun", "20-Jun", "20-Jun", "20-Jun", "20-Jun", "20-Jun",
"20-Jun", "20-Jun", "20-Jun", "20-Jun", "20-Jun")), row.names = c(NA,
20L), class = "data.frame")
Google 表格链接:https://docs.google.com/spreadsheets/d/1QFXNUpgEjjPGdfXUwvzYIadnoxcD2-Ba6cw6BqrxfO8/edit
【问题讨论】: