小编Ant*_*ico的帖子

按组选择前N个值

这是对r-help邮件列表中提出的问题的回应.

以下是如何使用组查找顶级值的大量示例sql,因此我认为使用R sqldf包可以轻松转换该知识.

一个例子:当mtcars按时分组时cyl,这里是每个不同值的前三个记录cyl.请注意,在这种情况下排除关系,但显示处理关系的一些不同方法会很好.

                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb ranks
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1   2.0
Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2   1.0
Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1   2.0
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30 …
Run Code Online (Sandbox Code Playgroud)

aggregate r

38
推荐指数
5
解决办法
7万
查看次数

如何将`==`行为扩展到包含NA的向量?

我完全没有找到关于这个特定问题的其他r-help或Stack Overflow讨论.对不起,如果它显而易见的话.我相信我只是在寻找让R的==符号永远不会返回NAs的最简单方法.

# Example #

# Say I have two vectors
a <- c( 1 , 2 , 3 )
b <- c( 1 , 2 , 4 )
# And want to test if each element in the first
# is identical to each element in the second:
a == b
# It does what I want perfectly:
# TRUE TRUE FALSE

# But if either vector contains a missing,
# the `==` operator returns an incorrect result:
a …
Run Code Online (Sandbox Code Playgroud)

r

30
推荐指数
3
解决办法
845
查看次数

即使在删除并清除所有对象后,如何让R释放并停止保持内存?

我试图让一些代码在RAM少于4GB的计算机上运行.我使用32位版本的R来强制执行内存上限.当我试图运行内存占用命令并且一切都中断时,我正在接近脚本末尾的墙.但内存占用任务本身需要不到4GB.我已经将问题缩小到这样的事实 - 尽管在当前会话中清除了内存中的所有对象--R控制台仍然保持1.9GB的RAM.下面的屏幕截图突出显示了我遇到问题的确切位置:注意内存中没有任何对象,但是任务管理器说这个R的实例拥有1.8578GB的RAM.

如果我清除内存中的所有对象,然后运行gc()它仍然不会清除所有内存(正如您在我的屏幕截图中看到的).

是否有可能以某种方式清除这种记忆?

如果有任何用处,您可以通过运行此脚本将其重现到崩溃点

谢谢!

在此输入图像描述

编辑:在我得到的脚本的末尾

[1] "current designing ./2011/bst.rda"
Error: cannot allocate vector of size 434.7 Mb
In addition: There were 50 or more warnings (use warnings() to see the first 50)
> gc(verbose=T)
Garbage collection 27232 = 15350+4362+7520 (level 2) ... 
31.5 Mbytes of cons cells used (49%)
450.6 Mbytes of vectors used (21%)
           used  (Mb) gc trigger   (Mb)  max used   (Mb)
Ncells  1175911  31.5    2421436   64.7   1770749   47.3
Vcells 59048650 450.6 …
Run Code Online (Sandbox Code Playgroud)

memory garbage-collection memory-management r

30
推荐指数
1
解决办法
2666
查看次数

如何用R下载半破javascript asp函数后面的文件

我正在尝试修复我公开提供的下载自动化脚本,以便任何人都可以使用R轻松下载世界价值观调查.

在此网页- http://www.worldvaluessurvey.org/WVSDocumentationWV4.jsp - PDF链接"WVS_2000_Questionnaire_Root"容易在Firefox和chrome.I下载无法弄清楚如何自动下载使用httrRCurl或任何其它的R包.下面是Chrome互联网行为的截图.PDF链接需要跟进http://www.worldvaluessurvey.org/wvsdc/DC00012/F00001316-WVS_2000_Questionnaire_Root.pdf的最终来源,但如果直接点击它们,则会出现连接错误.我不清楚这是否与请求标头Upgrade-Insecure-Requests:1或响应标头状态代码有关302

点击新的worldvaluessurvey.org网站,使用chrome的inspect元素窗口打开让我觉得这里有一些hacky编码决策,因此标题半破:/

在此输入图像描述

javascript asp.net r rcurl httr

27
推荐指数
2
解决办法
795
查看次数

如何以编程方式使用R提取或解压缩.7z(7-zip)文件

我正在尝试自动提取用7-zip压缩的大量文件.我需要自动化这个过程,因为a)我想要解锁多年的数据和b)我想与其他人分享我的代码,并防止他们手动重复这个过程.

我的计算机上安装了WinRAR和7-zip,我可以使用任一程序轻松打开这些文件.

我环顾四周unzip untarunz命令,但我不相信他们中的任何一个都能满足我的需求.

我对压缩一无所知,但如果它有任何区别:这些文件中的每一个只包含一个文件,它只是一个文本文件.

我非常喜欢不需要用户安装其他软件(如WinRAR或7-Zip)并执行命令的解决方案shell,尽管我承认只有R和CRAN软件包可能无法执行此任务.我实际上相信shell.exec使用其他参数运行这些文件可能适用于安装了WinRAR的计算机,但同样,我希望尽可能避免安装.:)

运行下面的代码将加载我试图提取的文件 - .7z文件files.data是需要解锁的.

# create a temporary file and temporary directory, download the file, extract the file to the temporary directory
tf <- tempfile() ; td <- tempdir()
file.path <- "ftp://ftp.ibge.gov.br/Orcamentos_Familiares/Pesquisa_de_Orcamentos_Familiares_2008_2009/Microdados/Dados.zip"
download.file( file.path , tf , mode = "wb" )
files.data <- unzip( tf , exdir = td )

# how do i unzip ANY of these .7z …
Run Code Online (Sandbox Code Playgroud)

zip r 7zip unzip rar

26
推荐指数
2
解决办法
1万
查看次数

使用RCurl或httr自动登录R中的英国数据服务网站

我正在为http://asdfree.com/编写一组可自由下载的R脚本,以帮助人们分析英国数据服务托管的复杂样本调查数据.除了为这些数据集提供大量统计教程之外,我还想自动下载和导入此调查数据.为了做到这一点,我需要弄清楚如何以编程方式登录这个英国数据服务网站.

我已经尝试了许多不同的RCurlhttr配置来登录,但是我在某个地方犯了一个错误而且我被卡住了.我已经尝试检查这篇文章中概述的元素,但网站在浏览器中跳得太快,让我无法理解发生了什么.

这个网站确实需要登录名和密码,但我相信在进入登录页面之前我犯了一个错误.

以下是网站的运作方式:

起始页应为:https://www.esds.ac.uk/secure/UKDSRegister_start.asp

此页面将自动将您的Web浏览器重定向到以以下内容开头的长URL: https://wayf.ukfederation.org.uk/DS002/uk.ds?[blahblahblah]

(1)由于某种原因,SSL证书在本网站上不起作用.这是我发布的有关此问题的SO问题.我使用的解决方法是忽略SSL:

library(httr)
set_config( config( ssl.verifypeer = 0L ) )
Run Code Online (Sandbox Code Playgroud)

然后我在起始网站上的第一个命令是:

z <- GET( "https://www.esds.ac.uk/secure/UKDSRegister_start.asp" )
Run Code Online (Sandbox Code Playgroud)

这给了我一个z$url看起来很像https://wayf.ukfederation.org.uk/DS002/uk.ds?[blahblahblah]我的浏览器也重定向的页面.

然后,在浏览器中,您应该输入"英国数据存档"并单击continue按钮.当我这样做时,它会将我重定向到网页https://shib.data-archive.ac.uk/idp/Authn/UserPassword

我认为这是我被困的地方,因为我无法弄清楚如何followlocation在这个网站上获得cURL 和土地.注意:尚未输入用户名/密码.

当我使用wayf.ukfederation.org.uk页面中的httr GET命令时,如下所示:

 y <- GET( z$url , query = list( combobox = "https://shib.data-archive.ac.uk/shibboleth-idp" ) )
Run Code Online (Sandbox Code Playgroud)

y$url字符串看起来很像z$url(除非它有一个下拉框=上年底).有没有办法通过RCurlhttr进入此uk data …

curl r web-scraping rcurl httr

19
推荐指数
1
解决办法
2355
查看次数

如何使用R登录然后从aspx网页下载文件

我正在尝试使用R 自动下载此网页上可用的收入动态面板研究文件.点击任何这些文件会将用户带到此登录/身份验证页面.身份验证后,可以使用Web浏览器轻松下载文件.不幸的是,下面的代码似乎没有维护身份验证.我已经尝试在Chrome中检查Login.aspx页面(如此处所述),但即使我认为我传递了所有正确的值,它似乎也不会保持身份验证.如果是与做我不关心或者还是其他什么东西,我只是喜欢的事,在'r的作品,所以我不需要有此脚本的用户必须手动或使用一些完全独立的程序下载的文件.我对此的尝试之一如下,但它不起作用.任何帮助,将不胜感激.谢谢!!:dhttrHeadershttrRCurl

require(httr)

values <- 
    list( 
        "ctl00$ContentPlaceHolder3$Login1$UserName" = "you@email.com" , 
        "ctl00$ContentPlaceHolder3$Login1$Password" = "somepassword" ,
        "ctl00$ContentPlaceHolder3$Login1$LoginButton" = "Log In" ,
        "_LASTFOCUS" = "" ,
        "_EVENTTARGET" = "" ,
        "_EVENTARGUMENT" = "" 
    )

POST( "http://simba.isr.umich.edu/u/Login.aspx?redir=http%3a%2f%2fsimba.isr.umich.edu%2fZips%2fZipMain.aspx" , body = values )

resp <- GET( "http://simba.isr.umich.edu/Zips/GetFile.aspx" , query = list( file = "1053" ) )
Run Code Online (Sandbox Code Playgroud)

asp.net r download rcurl httr

14
推荐指数
1
解决办法
6821
查看次数

.Internal(La_rs(x,FALSE))仅在Windows上经过长(可重现)脚本后崩溃

.Internal(La_rs(x,FALSE))该内部通话eigen中使用的功能fields:::Krig.engine.default会导致我的[R控制台[1]它被一个巨大的脚本中触发后崩溃.

我确信那是导致引爆的线.但是,同一行不会在使用以下内容的新会话中崩溃:

x <- structure(c(0.00251355321405019, -0.000589785531216647, -0.000172411748626129, -0.000589785531217227, 0.000897505637785858, -0.000714600035538855, -0.000172411748626269, -0.000714600035538766, 0.00123946691634644), .Dim = c(3L, 3L))
.Internal(La_rs(x,FALSE))
Run Code Online (Sandbox Code Playgroud)

您可以使用以下三行重现此控制台崩溃(大约需要十分钟):

# install.packages( c("MonetDB.R", "MonetDBLite" , "survey" , "SAScii" , "descr" , "downloader" , "digest" , "sas7bdat" , "R.utils" ,"survey","ggplot2","scales","mapproj","sqldf","maptools","raster","rgeos","stringr","plyr","mgcv","spatstat","rgeos") , repos=c("http://dev.monetdb.org/Assets/R/", "http://cran.rstudio.com/"))
# path.to.7z <- "7za"       # macintosh/unix users need to specify 7z
#  setwd("C:/My Directory/")
# warning: some large downloads
downloader::source_url( "https://raw.githubusercontent.com/davidbrae/swmap/8eecde1683efab65a7e27eb7c92e7967a98dc639/how%20to%20map%20the%20american%20community%20survey.R" , prompt = FALSE )
Run Code Online (Sandbox Code Playgroud)

对不起这个例子不是更小,当我删除不同的东西时崩溃消失了..

2016年2月22日编辑:更糟糕的是,当我尝试一个旨在自行触发崩溃的脚本时,它不会死!

downloader::source_url("https://gist.githubusercontent.com/ajdamico/0c256ed3a77d77eecfd6/raw/ce0570effd37c6384f2e27f1b38335078adcb49d/La_rs_bughunt.R",echo=T,prompt=F)
Run Code Online (Sandbox Code Playgroud)

谢谢!

[1] R版本3.2.3(2015-12-10)平台:x86_64-w64-mingw32/x64(64位) …

r

13
推荐指数
1
解决办法
422
查看次数

如何使用R中的httr对shibboleth多主机名网站进行身份验证

注意:ipums international和ipums usa可能使用相同的系统.ipums usa允许更快的注册.如果您想测试您的代码,请尝试https://usa.ipums.org/usa-action/users/request_access进行注册!

我正在尝试以编程方式从https://international.ipums.org/下载带有R语言和httr的文件.我需要使用httr而不是RCurl因为我需要后验证下载大文件不是 RAM而是直接下载到磁盘. 据我所知,目前这是唯一可行的httr

下面的可重现代码记录了我从登录页面(https://international.ipums.org/international-action/users/login)到主后验证页面的最大努力.任何提示或提示将不胜感激!谢谢!

my_email <- "email@address.com"
my_password <- "password"

tf <- tempfile()

# use httr, because i need to download a large file after authentication
# and only httr supports that with its `write_disk()` option
library(httr)

# turn off ssl verify, otherwise the subsequent GET command will fail
set_config( config( ssl_verifypeer = 0L ) )

GET( "https://international.ipums.org/Shibboleth.sso/Login?target=https%3A%2F%2Finternational.ipums.org%2Finternational-action%2Fmenu" )

# connect to the starting login page of …
Run Code Online (Sandbox Code Playgroud)

post r shibboleth httr

12
推荐指数
1
解决办法
712
查看次数

检查在R脚本中使用随机数生成器的函数的综合方法?

是否有一种智能的方法来识别.Random.seedR脚本中任何一点使用的所有函数(R中的随机数生成器状态)?

用例:我们有一个不断变化的数据集,记录[行]和信息[列] - 我们经常添加新记录,但我们也更新某些列中的信息.所以数据集不断变化.我们用一个插补来填充一些缺失的数据,这需要随sample()函数生成随机数.因此,每当我们添加新行或更新列中的任何信息时,随机推算的数字都会发生变化 - 这是预期的.我们set.seed()在每个随机插补的开始使用,因此如果列更改但零行更改,则其他随机生成的列不受影响.

我的印象是我们整个代码库中唯一触及随机种子的sample()函数是函数,但我想以某种方式验证这一点?

编辑:即使在触摸随机数状态时打印函数调用的东西也会有所帮助,debug()每当调试函数被触发时,生活方式都会生效吗?出于我们的目的,可以非常安全地假设,如果我们运行一次脚本进行动态评估并且没有其他随机函数被触发,那么我们是安全的.

谢谢

random r random-seed

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