我有兴趣从statistics.gov.scot下载一些边界文件,这是一个官方统计存储库,用于共享利用SPARQL查询的统计数据.
Statistics.gov.scot提供对多个管理和统计地理区域的GeoJSON边界的访问,例如地方当局管理边界或健康委员会.在我的特定情况下,我有兴趣下载一个与数据区有关的GeoJSON边界的数据集.数据区是为在小范围内传播生命结果数据而开发的统计地理区域.通过 statistics.gov.scot访问时,样本数据区看起来像这样:
可在此处访问地理位置和相关数据.相应的GeoJSON数据可在此处获得.
数据区有两次迭代,2004年生产,另一次最近更新.我想下载2004年制作的第一次迭代.根据有关统计实体的信息,我起草了以下查询:
PREFIX entity: <http://statistics.data.gov.uk/def/statistical-entity#>
PREFIX boundaries: <http://statistics.gov.scot/boundaries/>
SELECT ?boundary
WHERE {
entity:introduced <http://reference.data.gov.uk/id/day/2004-02-01>
}
LIMIT 1000
Run Code Online (Sandbox Code Playgroud)
返回以下错误消息:
Run Code Online (Sandbox Code Playgroud)Error There was a syntax error in your query: Encountered " "}" "} "" at line 7, column 3. Was expecting one of: <IRIref> ... <PNAME_NS> ... <PNAME_LN> ... <BLANK_NODE_LABEL> ... <VAR1> ... <VAR2> ... "true" ... …
我正在使用与下面的摘录对应的导入数据集:
set.seed(1)
dta <- data.frame("This is Column One" = runif(n = 10),
"Another amazing Column name" = runif(n = 10),
"!## This Columns is so special€€€" = runif(n = 10),
check.names = FALSE)
Run Code Online (Sandbox Code Playgroud)
我正在使用这些数据进行一些清理dplyr,我想将列名更改为语法正确的,并删除标点符号作为第二步.到目前为止我尝试了什么:
dta_cln <- dta %>%
rename(make.names(names(dta)))
Run Code Online (Sandbox Code Playgroud)
生成错误:
Run Code Online (Sandbox Code Playgroud)> dta_clean <- dta %>% + rename(make.names(names(dta))) Error: All arguments to rename must be named.
我想要实现的目标可以在基础上完成:
names(dta) <- gsub("[[:punct:]]","",make.names(names(dta)))
Run Code Online (Sandbox Code Playgroud)
将返回:
Run Code Online (Sandbox Code Playgroud)> names(dta) [1] "ThisisColumnOne" "AnotheramazingColumnname" "XThisColumnsissospecial"
我想达到相同的效果,但使用dyplr和%>%.
根据对条件dplyr求值的讨论,我想根据传入数据帧中是否存在引用列,有条件地在管道中执行一个步骤.
所产生的结果1)和2)应该是相同的.
# 1)
mtcars %>%
filter(am == 1) %>%
filter(cyl == 4)
# 2)
mtcars %>%
filter(am == 1) %>%
{
if("cyl" %in% names(.)) filter(cyl == 4) else .
}
Run Code Online (Sandbox Code Playgroud)
# 1)
mtcars %>%
filter(am == 1)
# 2)
mtcars %>%
filter(am == 1) %>%
{
if("absent_column" %in% names(.)) filter(absent_column == 4) else .
}
Run Code Online (Sandbox Code Playgroud)
对于可用列,传递的对象与初始数据帧不对应.原始代码返回错误消息:
错误
filter(cyl == 4):'cyl'找不到对象
我尝试了其他语法(没有运气):
>> mtcars %>%
... filter(am …Run Code Online (Sandbox Code Playgroud) 我正在看RomainFrançois提出的爵士乐套餐.Romain is_bare_vector使用以下语法定义函数:
is_bare_vector <- function(x) {
is_vector(x) && !is.object(x) && is.null(attr(x, "class"))
}
Run Code Online (Sandbox Code Playgroud)
对于x <- 1:
attr(x, "class")
# NULL
Run Code Online (Sandbox Code Playgroud)
鉴于:
class(x)
# [1] "numeric"
Run Code Online (Sandbox Code Playgroud)
我想理解为什么这两个函数提供不同的答案??attr参考文献的帮助?class
?attr请注意,一些属性(即
class,comment,dim,dimnames,names,row.names和tsp)都是经过特殊处理的,并具有可在其上设置的值的限制.(请注意,对于通过级别替换功能应为因子设置的级别,情况并非如此.)
?class许多R对象都有一个class属性,一个字符向量给出了对象继承的类的名称.(函数
oldClass和oldClass<-获取和设置属性,也可以直接完成.)
同事,
我正在查看类似于以下摘录的数据框:
Month Provider Items
January CofCom 25
july CofCom 331
march vobix 12
May vobix 0
Run Code Online (Sandbox Code Playgroud)
我想将每个单词的首字母大写,并降低每个单词的剩余字母.这将导致数据框类似于下面的数据框:
Month Provider Items
January Cofcom 25
July Cofcom 331
March Vobix 12
May Vobix 0
Run Code Online (Sandbox Code Playgroud)
总之,我正在寻找R等同于MS Excel中可用的ROPER功能.
我尝试使用下面的代码生成,将有斜体的相关系数简单的散点图[R置于情节.
data(mtcars)
# Load required libraries
require(ggplot2) # To derive the graphs
require(ggthemes) # To apply ggplot themes to the chart
require(scales) # For pretty breaks
# Function to generate correlation coefficient for the charts
corr_eqn <- function(x,y, digits = 2) {
corr_coef <- round(cor(x, y), digits = digits)
corr_coef <- expression(paste(italic(r)," = ", corr_coef))
return(corr_coef)
}
# Provide a scatter plot for income and health deprivation
ggplot(mtcars, aes(x = drat, y = wt)) +
geom_point(shape = 19, …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Shiny应用程序,让民众可以浏览一些时间序列数据.我有许多小部件可以让人们选择变量和分析类型.在这两者之间,我有一个适度的radioButton机制,允许用户选择一些变量的时间序列:
radioButtons("radio_year_select","Year", c("1999" = "1999", "2001" = "2001"))),
Run Code Online (Sandbox Code Playgroud)
代码生成一个简单的小部件:
在这个特定应用程序的上下文中,我希望以横向顺序呈现选项,如下所示:
年份: [X] 1999 [] 2001年
有没有一种简单的方法来实现这一目标?
我正在使用类似于data.frame下面生成的数据集:
set.seed(1)
dta <- data.frame(observation = 1:20,
valueA = runif(n = 20),
valueB = runif(n = 20),
valueC = runif(n = 20),
valueD = runif(n = 20))
dta[2:5,3] <- NA
dta[2:10,4] <- NA
dta[7:20,5] <- NA
Run Code Online (Sandbox Code Playgroud)
列具有NA值,最后一列具有超过60%的观察值NAs.
> sapply(dta, function(x) {table(is.na(x))})
$observation
FALSE
20
$valueA
FALSE
20
$valueB
FALSE TRUE
16 4
$valueC
FALSE TRUE
11 9
$valueD
FALSE TRUE
6 14
Run Code Online (Sandbox Code Playgroud)
我希望能够以dplyr某种方式将管道中的这一列移到select参数中.
这可以很容易地完成base.例如,要选择低于50%的 …
我在RStudio工作的一个简单的分析,我通过source命令来源一些文件.例如,我有一个简单的分析这个文件:
# Settings ----------------------------------------------------------------
data("mtcars")
source("Generic Functions.R")
# Some work ---------------------------------------------------------------
# Makes no sense
mtcars$mpg <- CleanPostcode(mtcars$mpg)
Run Code Online (Sandbox Code Playgroud)
该泛型函数文件有我用它来获得图形,做重复的任务一些简单的功能.例如,使用的CleanPostcode函数看起来像这样:
#' The file provides a set of generic functions
# String manipulations ----------------------------------------------------
# Create a clean Postcode for matching
CleanPostcode <- function(MessyPostcode) {
MessyPostcode <- as.character(MessyPostcode)
MessyPostcode <- gsub("[[:space:]]", "", MessyPostcode)
MessyPostcode <- gsub("[[:punct:]]", "", MessyPostcode)
MessyPostcode <- toupper(MessyPostcode)
cln_str <- MessyPostcode
return(cln_str)
}
Run Code Online (Sandbox Code Playgroud)
当我运行第一个文件时,对象在全局环境中可用:
文件中还有一些其他功能,但它们与描述的问题无关.
然而,RStudio认为对象在范围内不可用,如代码旁边的黄色三角形所示:
有没有办法让RStudio停止这样做.也许改变source命令的东西?我试过local …
我正在使用类似于以下摘录的数据集:
head(nomis.lng.agg)
quarter decile avg.val
1 2004 Q4 1 5.680000
2 2005 Q1 1 5.745763
3 2005 Q2 1 5.503341
4 2005 Q3 1 5.668224
5 2005 Q4 1 5.244604
6 2006 Q1 1 5.347222
Run Code Online (Sandbox Code Playgroud)
变量quarter是由class yearqtr生成的zoo.其余两列是数字.我目前正在生成使用以下ggplot语法的绘图:
ggplot(data = subset(x = df,
subset = df$decile== 1 |
df$decile== 10),
aes(x = quarter, y = avg.val, group = decile)) +
geom_line(aes(linetype=as.factor(decile)),
size = 1) +
scale_x_yearqtr(format = "%YQ%q", n = 5) +
xlab("Quarter") + …Run Code Online (Sandbox Code Playgroud) r ×9
dataframe ×3
dplyr ×3
ggplot2 ×2
annotations ×1
as.date ×1
class ×1
environment ×1
expression ×1
filter ×1
function ×1
geojson ×1
linked-data ×1
na ×1
oop ×1
opendata ×1
primitive ×1
radio-button ×1
rdf ×1
rstudio ×1
scatter-plot ×1
scoping ×1
shiny ×1
sparql ×1
string ×1
syntax ×1
time-series ×1
tolower ×1
toupper ×1
widget ×1
zoo ×1