在@GavinSimpson撰写的超级博客之后,我正在尝试调整2015年波兰地方政府的选举结果。 https://www.fromthebottomoftheheap.net/2017/10/19/first-steps-with-mrf-smooths/ 我将xls上的shp数据与6位数字标识符(可能是前导0 s)结合在一起。我将其保留为文本变量。编辑,我简化了标识符,现在使用从1到n的序列来简化我的问题。
library(tidyverse)
library(sf)
library(mgcv)
# Read data
# From https://www.gis-support.pl/downloads/gminy.zip shp file
boroughs_shp <- st_read("../../_mapy/gminy.shp",options = "ENCODING=WINDOWS-1250",
stringsAsFactors = FALSE ) %>%
st_transform(crs = 4326)%>%
janitor::clean_names() %>%
# st_simplify(preserveTopology = T, dTolerance = 0.01) %>%
mutate(teryt=str_sub(jpt_kod_je, 1, 6)) %>%
select(teryt, nazwa=jpt_nazwa, geometry)
# From https://parlament2015.pkw.gov.pl/wyniki_zb/2015-gl-lis-gm.zip data file
elections_xls <-
readxl::read_excel("data/2015-gl-lis-gm.xls",
trim_ws = T, col_names = T) %>%
janitor::clean_names() %>%
select(teryt, liczba_wyborcow, glosy_niewazne)
elections <-
boroughs_shp %>% fortify() %>%
left_join(elections_xls, by = "teryt") %>%
arrange(teryt) %>%
mutate(idx = …
Run Code Online (Sandbox Code Playgroud) 我对分组标记和以小饼图形式按组呈现计数的解决方案着迷/sf/answers/4236759621/ 我只是 R,不懂 JS。我希望代码对每个数据点的值求和而不是计数(每个单独的数据点可能已经代表一个计数)。我想根据值控制更多气泡的大小。你能帮助我并展示如何更改 js 代码,以便它对数据点的值进行求和,以及如何增加/控制气泡的大小?
这里有一个所需的解决方案,对非饼图标记进行求和而不是计数:How to display the value (sum)rather than count of labels in a dc.leaflet.js 这里 有一个解决方案,它还可以控制气泡的大小:带有总和(不是计数)的聚类传单标记:如何获得一致的圆形红色形状和标签格式,就像非聚类标记一样
原始代码来自/sf/users/189819871/ @DanielBonnery
library(leaflet)
library(dplyr)
#Creates data
data("breweries91",package="leaflet")
#set.seed(1);
breweries91$goodbear<-sample(as.factor(c("terrific","marvelous","culparterretaping")),nrow(breweries91),replace=T)
#Colors
joliepalette<-c("red","green","blue")[1:nlevels(breweries91$goodbear)]
getColor <- function(breweries91) {joliepalette[breweries91$goodbear]}
icons <- awesomeIcons(
icon = 'ios-close',
iconColor = 'black',
library = 'ion',
markerColor = getColor(breweries91)
)
#Generate the javascript
jsscript3<-
paste0(
"function(cluster) {
const groups= [",paste("'",levels(breweries91$goodbear),"'",sep="",collapse=","),"];
const colors= {
groups: [",paste("'",joliepalette,"'",sep="",collapse=","),"],
center:'#ddd',
text:'black'
};
const markers= cluster.getAllChildMarkers();
const proportions= groups.map(group …
Run Code Online (Sandbox Code Playgroud) 我想从一组短文本中找到的字典中学习术语的位置。问题出在以下代码的最后几行,大致基于 字符串列表的 From,识别哪些是人名,哪些不是
library(tm)
pkd.names.quotes <- c(
"Mr. Rick Deckard",
"Do Androids Dream of Electric Sheep",
"Roy Batty",
"How much is an electric ostrich?",
"My schedule for today lists a six-hour self-accusatory depression.",
"Upon him the contempt of three planets descended.",
"J.F. Sebastian",
"Harry Bryant",
"goat class",
"Holden, Dave",
"Leon Kowalski",
"Dr. Eldon Tyrell"
)
firstnames <- c("Sebastian", "Dave", "Roy",
"Harry", "Dave", "Leon",
"Tyrell")
dict <- sort(unique(tolower(firstnames)))
corp <- VCorpus(VectorSource(pkd.names.quotes))
#strange but Corpus() gives wrong segment numbers for the matches. …
Run Code Online (Sandbox Code Playgroud) 由于在quanteda中没有现成的波兰语停用词,我想使用自己的列表.我把它作为一个由空格分隔的列表在文本文件中.如果需要,我还可以准备一个由新行分隔的列表.
如何从语料库中删除自定义的长字停用词列表?堵塞之后怎么办?
我尝试过创建各种格式,转换为字符串向量
stopwordsPL <- as.character(readtext("polish.stopwords.txt",encoding = "UTF-8"))
stopwordsPL <- read.txt("polish.stopwords.txt",encoding = "UTF-8",stringsAsFactors = F))
stopwordsPL <- dictionary(stopwordsPL)
Run Code Online (Sandbox Code Playgroud)
我也尝试在语法中使用这样的单词向量
myStemMat <-
dfm(
mycorpus,
remove = as.vector(stopwordsPL),
stem = FALSE,
remove_punct = TRUE,
ngrams=c(1,3)
)
dfm_trim(myStemMat, sparsity = stopwordsPL)
Run Code Online (Sandbox Code Playgroud)
要么
myStemMat <- dfm_remove(myStemMat,features = as.data.frame(stopwordsPL))
Run Code Online (Sandbox Code Playgroud)
什么都行不通.我的词汇出现在语料库和分析中.应用自定义停用词的正确方法/语法应该是什么?
我想首先使用ggmap绘制以经度和纬度为轴的特定区域。
然后,考虑到经度和纬度,我想将ggplot2小图放在特定位置。这些可以是主题最少的酒吧。
我的数据库可能包含以下列:
1. town
2. longitude
3. latitude
4. through 6. value A, B, C
Run Code Online (Sandbox Code Playgroud)
我生成一个图(伪代码)
p <- ggmap(coordinates)
Run Code Online (Sandbox Code Playgroud)
而且我有最小的ggplot2设计
q<-ggplot2()+geom_bar(....)+ ... x-axis null y axis null minimal template
Run Code Online (Sandbox Code Playgroud)
如何将两种设计结合在一起,以使ggmap具有在地图的特定坐标上施加的最小最小ggplot图?
例如我正在使用虹膜数据:
library(flextable)
library(officer)
library(magrittr)
ft_test <- head(iris) %>% flextable() %>%
colformat_num(j = c("Sepal.Length", "Sepal.Width",
"Petal.Length", "Petal.Width"), digits = 1)
Run Code Online (Sandbox Code Playgroud)
如果我希望有百分比格式的“Petal.Width”值,正确的语法是什么?我找不到 colformat_percent 函数。有没有办法使用flextable语法来弥补它?
如何从PDF中抓取一些标题文本开头的表格?我正在尝试制表程序包。这是从特定页面获取表格的示例(波兰语“公共卫生需求图”)
library(tabulizer)
library(tidyverse)
options(java.parameters = "-Xmx8000m")
location<-"http://www.mpz.mz.gov.pl/wp-content/uploads/sites/4/2019/01/mpz_choroby_ukladu_kostno_miesniowego_woj_dolnoslaskie.pdf"
(out<-extract_tables(location, pages = 8,encoding = "UTF-8", method = "stream", outdir = getwd())[[4]] %>%
as.tibble())
Run Code Online (Sandbox Code Playgroud)
这使我在特定页面上有一张桌子。但我将从网站上刮取许多此类pdf文件:http : //www.mpz.mz.gov.pl/mapy-dla-30-grup-chorob-2018/,然后是带有每种疾病的许多链接的子页面,获取与波兰每个省的rvest的链接,我需要在特定标题字符串之后抓取表格,例如。
表1.2.2:Struktura zapadalnosci rejestrowanej w zale?no?ci od p?ci,miejsca zamieszkania oraz grupy wiekowej-Choroby uk?adowe tkanki ?? cznej“
我需要检测Tabela(...)Struktura zapadalnosci(...)“,因为表格可能不在同一页面上。非常感谢您事先提供的任何指导和意见。
编辑:我问了一个问题后,到目前为止,我成功地找到了表格可能所在的页面,也许效果很差:
library(pdfsearch)
pages <-
keyword_search(
location,
keyword = c(
'Tabela',
'Struktura zapadalnosci rejestrowanej'
),
path = TRUE,
surround_lines = FALSE
) %>%
group_by(page_num) %>%
mutate(keyword = paste0(keyword, collapse = ";")) %>%
filter(
str_detect(keyword, "Tabela") &
str_detect(keyword, "Struktura …
Run Code Online (Sandbox Code Playgroud) 以下函数将数组返回到工作表。我标记一个区域,键入我的函数并按 Ctrl+Shift+Enter 以使单元格填充记录集中的数据。
但是,如果我的 CSE 函数的选定区域大于返回的记录集,我会收到一个#N/A
. 如果较小,则不会发出任何警告。
有没有一种简单的方法可以用值替换#N/A
,""
并且如果数组函数的范围小于返回的数组 - 则显示警告?
这是我当前的工作函数,它从记录集中返回一个数组:
Function SQL(dataRange As Range, CritA As String, CritB As Double) As Variant
Application.Volatile
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim currAddress As String
Dim varHdr, varDat, varOut As Variant
Dim nc, nr, i, j As Long
SQL = Null
currAddress = ActiveSheet.Name & "$" & dataRange.Address(False, False)
strFile = ThisWorkbook.FullName
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile _
& ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=0"";" …
Run Code Online (Sandbox Code Playgroud) 我想将值附加到R中河流图中的标签
我有一个值列表列表,这是显示节点之间的流量所必需的,如下所示:
edges <- list( A= list( C= 10, E= 5 ),
B= list( C= 10 ),
C=list(D = 13, E = 7 ))
Run Code Online (Sandbox Code Playgroud)
我知道一个函数可以减少(或求和)列表中的一个元素,如下所示:Reduce("+",edge $ A)
有没有办法将这样的值列表减少到数据帧,或者我可以得到总和:
Node Sum
A 15
B 10
C 20
D 13
E 12
Run Code Online (Sandbox Code Playgroud)
编辑:
我刚刚意识到有一个混乱:看起来我需要两个输出,它可能有点复杂:1.如果'edge'列表有一个带有类别名称的子列表,总结2.如果没有,得到总和这个项目的所有出现
案例1:类别A,B,C(这些是起始节点)案例2:类别D,E(这些是河流图中的末端节点)
我很抱歉这个混乱.
我想抓住这个网址:https://prog.nfz.gov.pl/app-jgp/GrupaSzczegoly.aspx? id = 2AfRAM1JYDoYzktSMvdOhFiPm2Fnh67q
它列出了每个地区医疗程序的统计数据,html具有结构:标题和相应的表格,全国所有地区的16次.
在简化的html中:
<div class="tytul">01 - NameOfDistrict_01</div>
<table>
...
<tr>
<td class="lewa">No. of procedures</td>
<td class="prawa"><span id="ContentPlaceHolder1_lblbw">950</span>
</td>
...
</table>
<div class="tytul">02 - NameOfDistrict_02</div>
<table>
<tr>
...
<tr>
<td class="lewa">No. of procedures</td>
<td class="prawa"><span id="ContentPlaceHolder1_lblbw">350</span>
</td>
...
</td>
</table>
<div class="tytul">nn - NameOfDistrict_nn</div>
<table>
...
<tr>
<td class="lewa">No. of procedures</td>
<td class="prawa"><span id="ContentPlaceHolder1_lblbw">850</span>
</td>
...
</table>
Run Code Online (Sandbox Code Playgroud)
我不需要刮掉整个表格(如果可以的话我会很好)我只需要一个或两个值,所以我试着用Selector Gadget查看页面.我感兴趣的一个值是节点#ContentPlaceHolder1_lblbw中存在的过程数量,并且前面是标题即.tytul类.
mydata <- read_html(....) %>% html_nodes(name, "#ContentPlaceHolder1_lblbw") %>%
html_text()
Run Code Online (Sandbox Code Playgroud)
但是这个占位符会针对每个区域重复.然后我需要在表格上方的标题之后阅读第一个这样的占位符.并记录下面的每个标题和表格.
如何将这样的表刮到数据帧
District No. …
Run Code Online (Sandbox Code Playgroud)