R语言按照城市取样(一个城市有多行观测,想筛选一些城市)

我们的目标是想画出一些城市随着时间变化销售数量的变化。

简单的思路

filter()筛选的是观测,所以可以这样写

library(tidyverse)
filter(txhousing,txhousing$city %in% sample(unique(txhousing$city),10,replace = FALSE))

第二种方法

加载所需要的包

library(tidyr)
library(dplyr)
library(ggplot2)#txhousing数据集在这里面

在这里插入图片描述

一种抽样的方式

txhousing1 <- dplyr::sample_n(txhousing,10)

这样抽样的结果不是按照我们想要的,这样抽出来的不是十个城市,而是随机的10行数据

按照城市抽样

#首先将城市去掉重复并加上id
txhousingcity <- distinct(txhousing,city)%>%
  mutate(city_id=row_number())
txhousingcity 
#再将全部txhousing数据最后加上对应的城市id
txhousing
rankcity <- txhousing%>%
  left_join(txhousingcity,by="city")
rankcity
#再下面这个是个which的例子,就是取出id=1的城市
# rankcity1 <- rankcity[which(rankcity$city_id==1),]
# which()

set.seed(123)#设置随机种子
samplenumber <- sample(txhousingcity$city_id,size=10,replace =FALSE)
samplenumber
class(samplenumber)
rankcitychouyang <- rankcity[which(rankcity$city_id %in% c(samplenumber))
,]
rankcitychouyang

在这里插入图片描述
这样我们就抽出了十个城市全部的数据。下面就可以画出这十个城市的数据

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值