小编Fr.*_*Fr.的帖子

什么'quietly = TRUE'实际上在require()函数中工作?

我正在尝试编写一组函数来检查缺少的R包,并在必要时安装它们.在StackOverflow上有一些很好的代码:从这里开始.

我想让函数尽可能保持沉默,特别是因为R甚至以红色墨水返回成功的消息.因此,我试图将quietly = TRUE论证传递给两者libraryrequire.

但是,这些选项似乎永远不会起作用:

# attempt to get a silent fail
require(xyz, quietly = TRUE)
Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
  there is no package called ‘xyz’
Run Code Online (Sandbox Code Playgroud)

我如何能够require默默地失败,以及我没有得到关于该quietly选项的内容?

文件说:

quietly合乎逻辑的.如果为TRUE,则不会打印确认包装载的消息,并且通常,如果包装加载失败,则不会打印错误/警告.

但在我个人的经历中,"我经常"应该"几乎从不".我很高兴听到你的经历.理由:编码功能,以帮助学生.


加.同样的问题适用quiet = TRUEinstall.packages().它只会杀死进度条,但不会删除随后出现的"下载的二进制包都在"消息(黑色,黑色!),即使它对中位用户没用.


加.如果这可能是任何人都感兴趣,到目前为止的代码:

## getPackage(): package loader/installer
getPackage <- function(pkg, load = TRUE, silent = FALSE, repos = "http://cran.us.r-project.org") { …
Run Code Online (Sandbox Code Playgroud)

r

22
推荐指数
3
解决办法
9476
查看次数

我可以在数据框的每个元素上使用gsub()吗?

从Wikipedia导入表后,我有一个以下形式的值列表:

    > tbl[2:6]
    $`Internet
    Explorer`
     [1] "30.71%" "30.78%" "31.23%" "32.08%" "32.70%" "32.85%" "32.04%" "32.31%" "32.12%" "34.07%" "34.81%"
    [12] "35.75%" "37.45%" "38.65%" "40.63%" "40.18%" "41.66%" "41.89%" "42.45%" "43.58%" "43.87%" "44.52%"

    $Chrome
     [1] "36.52%" "36.42%" "35.72%" "34.77%" "34.21%" "33.59%" "33.81%" "32.76%" "32.43%" "31.23%" "30.87%"
    [12] "29.84%" "28.40%" "27.27%" "25.69%" "25.00%" "23.61%" "23.16%" "22.14%" "20.65%" "19.36%" "18.29%"
Run Code Online (Sandbox Code Playgroud)

我试图摆脱百分号,以便将数据转换为数字形式.

是否有更快的方法来清理这些数据而不是进行矢量化?我目前的代码如下:

    data <- lapply(tbl[2:6], FUN = function(x) as.numeric(gsub("%", "", x)))
Run Code Online (Sandbox Code Playgroud)

数据最终成为数据框架,但我无法gsub在数据框的所有元素上正常工作.有没有办法gsub()数据框的每个元素?

该项目的代码是在线的,带有结果.提前致谢!

r

11
推荐指数
1
解决办法
3万
查看次数

如何从R读取PDF元数据

我们的好奇心是,有没有办法从R中读取PDF元数据 - 例如下面显示的信息?

通过在[r] pdf metadata当前的问题库中搜索,我无能为力.任何指针都非常欢迎!

在此输入图像描述

pdf metadata r

10
推荐指数
1
解决办法
2130
查看次数

关于如何为Pygments编写词法分析器的大量文档?

我有一个Stata关键词和Stata语法的合理知识.我想花几个小时把它变成一个Stata lexer for Pygments.

但是,我找不到关于词法分析器语法的足够文档,并发现自己无法开始编写词法分析器.有人能指出为Pygments编写新词法分析器的好教程吗?

我知道Pygments API词法分析器开发页面,但老实说,对于像我这样对Python知识非常有限的人来说,这些还不够.

到目前为止,我的策略是寻找例子.我发现了很多,例如Puppet,Sass,Scala,Ada.他们帮助的只是那么多.任何有关如何从我的Stata关键字开始的帮助都将受到欢迎.

python pygments stata

9
推荐指数
1
解决办法
1644
查看次数

如何标记由ggplot2组成的分位数 - 分位数图的点?

我正在xdf在下面提供的工作示例中调用的数据帧调用的变量中构建分位数 - 分位数图.我想用name我的df数据集的变量标记点.

是否有可能在ggplot2中这样做而不诉诸痛苦的解决方案(手工编写理论分布然后根据经验分析绘制它)?

编辑:它发生了是的,感谢用户发布然后删除了他的答案.在下面的Arun回答之后看到评论.感谢Didzis的巧妙解决方案ggbuild.

# MWE
df <- structure(list(name = structure(c(1L, 2L, 3L, 4L, 5L, 7L, 9L, 
10L, 6L, 12L, 13L, 14L, 15L, 16L, 17L, 19L, 18L, 20L, 21L, 22L, 
8L, 23L, 11L, 24L), .Label = c("AUS", "AUT", "BEL", "CAN", "CYP", 
"DEU", "DNK", "ESP", "FIN", "FRA", "GBR", "GRC", "IRL", "ITA", 
"JPN", "MLT", "NLD", "NOR", "NZL", "PRT", "SVK", "SVN", "SWE", 
"USA"), class = "factor"), x = c(-0.739390016757746, 0.358177826874146, 
1.10474523846099, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

8
推荐指数
2
解决办法
4103
查看次数

在ggplot2中轻松添加'(all)'facet到facet_wrap?

我的facet_wrap文档中的数据看起来像这个例子:

http://docs.ggplot2.org/current/facet_wrap-29.png

我想使用所有数据填充整个视图的最后一个方面.

是否有一种简单的方法来添加"总"方面facet_wrap?添加边距很容易facet_grid,但该选项不存在facet_wrap.

注意:使用facet_grid,如果你想有一个象限如上面的情节,这就要求不是一个选项ncolnrow参数的facet_wrap.

r ggplot2

8
推荐指数
2
解决办法
2274
查看次数

如何使用R中的getURL()优化抓取

我试图从法国下议院网站上的两页中删除所有账单.这些页面涵盖了2002 - 2012年,每个代表不到1,000个账单.

为此,我getURL通过这个循环:

b <- "http://www.assemblee-nationale.fr" # base
l <- c("12","13") # legislature id

lapply(l, FUN = function(x) {
  print(data <- paste(b, x, "documents/index-dossier.asp", sep = "/"))

  # scrape
  data <- getURL(data); data <- readLines(tc <- textConnection(data)); close(tc)
  data <- unlist(str_extract_all(data, "dossiers/[[:alnum:]_-]+.asp"))
  data <- paste(b, x, data, sep = "/")
  data <- getURL(data)
  write.table(data,file=n <- paste("raw_an",x,".txt",sep="")); str(n)
})
Run Code Online (Sandbox Code Playgroud)

有没有办法优化getURL()这里的功能?我似乎无法通过传递async=TRUE选项使用并发下载,这每次都给我同样的错误:

Error in function (type, msg, asError = TRUE)  : 
Failed to connect to 0.0.0.12: …
Run Code Online (Sandbox Code Playgroud)

curl r web-scraping

6
推荐指数
1
解决办法
3259
查看次数

R:XPath表达式返回所选元素之外的链接

我正在使用R来使用XPath语法从该页面上的主表中删除链接.主表是页面上的第三个,我只想要包含杂志文章的链接.

我的代码如下:

require(XML)
(x = htmlParse("http://www.numerama.com/magazine/recherche/125/hadopi/date"))
(y = xpathApply(x, "//table")[[3]])
(z = xpathApply(y, "//table//a[contains(@href,'/magazine/') and not(contains(@href, '/recherche/'))]/@href"))
(links = unique(z))
Run Code Online (Sandbox Code Playgroud)

如果查看输出,最后的链接不是来自主表,而是来自侧边栏,即使我在第三行中选择了主表,要求对象y只包含第三个表.

我究竟做错了什么?用XPath编写代码的正确/更有效的方法是什么?

注意:XPath新手写作.

回答(非常快),非常感谢!我的解决方案如下.

extract <- function(x) {
    message(x)
    html = htmlParse(paste0("http://www.numerama.com/magazine/recherche/", x, "/hadopi/date"))
    html = xpathApply(html, "//table")[[3]]
    html = xpathApply(html, ".//a[contains(@href,'/magazine/') and not(contains(@href, '/recherche/'))]/@href")
    html = gsub("#ac_newscomment", "", html)
    html = unique(html)
}

d = lapply(1:125, extract)
d = unlist(d)
write.table(d, "numerama.hadopi.news.txt", row.names = FALSE)
Run Code Online (Sandbox Code Playgroud)

这将在此网站上保存所有带有关键字"Hadopi"的新闻项的链接.

xpath r

6
推荐指数
1
解决办法
494
查看次数

R:非贪婪的setdiff版本?

这是setdiff正常的行为:

x <- rep(letters[1:4], 2)
x
# [1] "a" "b" "c" "d" "a" "b" "c" "d"

y <- letters[1:2]
y
# [1] "a" "b"

setdiff(x, y)
# [1] "c" "d"
Run Code Online (Sandbox Code Playgroud)

...但是如果我只想y取出一次,那么得到以下结果呢?

# "c" "d" "a" "b" "c" "d"

我猜,有使用任何一种简单的解决方案setdiff还是%in%,但我就是不能看到它.

r

6
推荐指数
1
解决办法
250
查看次数

在Stata中利用价值标签

有些数据集带有全小写值标签,最后我会得到图表和表格,显示"埃及","约旦"和"沙特阿拉伯"的结果,而不是大写的国家名称.

我想proper()字符串函数可以为我做一些事情,但我找不到正确的方法来编写Stata 11的代码,它将为给定变量的所有值标签大写.

我基本上需要proper()在变量的所有值标签上运行该函数,然后将它们分配给变量.这可能foreach在Stata中使用循环和宏吗?

stata

5
推荐指数
1
解决办法
1298
查看次数

标签 统计

r ×8

ggplot2 ×2

stata ×2

curl ×1

metadata ×1

pdf ×1

pygments ×1

python ×1

web-scraping ×1

xpath ×1