如何解决用各种不同的数字在R中建立小标题
我有一个很简单的问题: 如果您有原始数据集,则可以通过过滤数据集来计算值,以得到问题的答案:如何构建答案的数据框/标题?
#load the packages
library(easypackages)
packages("tidyverse","readxl","sf","tmaptools","tmap","lubridate","lwgeom","Cairo","nngeo","purrr","scales","ggthemes","janitor")
polls<-st_as_sf(read.csv(url("https://www.caerphilly.gov.uk/CaerphillyDocs/FOI/Datasets_polling_stations_csv.aspx")),coords = c("Easting","Northing"),crs = 27700)%>%
mutate(date = sample(seq(as.Date('2020/01/01'),as.Date('2020/05/31'),by="day"),147))
test_stack<-polls%>%st_join(polls%>%st_buffer(dist=1000),join=st_within)%>%
filter(Ballot.Box.Polling.Station.x!=Ballot.Box.Polling.Station.y)%>%
add_count(Ballot.Box.Polling.Station.x)%>%
rename(number_of_neighbours = n)%>%
mutate(interval_date = date.x-date.y)%>%
subset(select = -c(6:8,10,11,13:18))## removing this comment will summarise the data so that only number of neighbours is returned %>%
distinct(Ballot.Box.Polling.Station.x,number_of_neighbours,date.x)%>%
filter(number_of_neighbours >=2)
polls%>%mutate(id = as.numeric(row_number()))%>% mutate(thing = case_when(id %% 2 == 0 ~ "stuff",id %% 2 !=0 ~ "type"))->polls
polls%>%filter(thing=="stuff"& Polling.District.Code =="AC")%>%count()
polls%>%filter(thing == "type" & Polling.District.Code =="IA")%>%count()
如何在行名有意义且列为计算值的数据帧中构建数据框?
有点像
行名值
东西AC 1
IA 1型
解决方法
听起来您想group_by
列thing
和Polling.District.Code
,然后通过计数summarize
来length
每组。如果要使摘要数据框摆脱“几何”列,则需要使用st_set_geometry(NULL)
polls %>%
group_by(thing,Polling.District.Code) %>%
summarize(count = length(thing),.groups = "keep") %>%
st_set_geometry(NULL)
#> # A tibble: 147 x 3
#> # Groups: thing,Polling.District.Code [147]
#> thing Polling.District.Code count
#> * <chr> <chr> <int>
#> 1 stuff AC 1
#> 2 stuff AE 1
#> 3 stuff BB1 1
#> 4 stuff CA1 1
#> 5 stuff CB1 1
#> 6 stuff CC 1
#> 7 stuff CE 1
#> 8 stuff DA2 1
#> 9 stuff DB1 1
#> 10 stuff DB3 1
#> # ... with 137 more rows
或者,如果要保留几何图形,请使用:
polls %>%
group_by(thing,.groups = "keep")
#> Simple feature collection with 147 features and 3 fields
#> geometry type: POINT
#> dimension: XY
#> bbox: xmin: 310399 ymin: 186331 xmax: 325960 ymax: 207788
#> projected CRS: OSGB 1936 / British National Grid
#> # A tibble: 147 x 4
#> # Groups: thing,Polling.District.Code [147]
#> thing Polling.District.Code count geometry
#> <chr> <chr> <int> <POINT [m]>
#> 1 stuff AC 1 (311777 206968)
#> 2 stuff AE 1 (311734 206047)
#> 3 stuff BB1 1 (310577 205577)
#> 4 stuff CA1 1 (314777 202748)
#> 5 stuff CB1 1 (314777 202748)
#> 6 stuff CC 1 (314622 203396)
#> 7 stuff CE 1 (315255 201843)
#> 8 stuff DA2 1 (315780 200318)
#> 9 stuff DB1 1 (314693 199774)
#> 10 stuff DB3 1 (315034 199159)
#> # ... with 137 more rows
,
我认为答案是bind_rows
polls%>%filter(thing=="stuff"& Polling.District.Code =="AC")%>%count()->a
polls%>%filter(thing == "type" & Polling.District.Code =="IA")%>%count()->b
bind_rows(a,b)->c
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。