小编And*_*ald的帖子

dplyr :: do()需要命名函数吗?

以下工作正常:

library(dplyr) 
m <- function(df) {
  mod <- lm(Sepal.Length ~ Sepal.Width, data = df)
  pred <- predict(mod,newdata = df["Sepal.Width"])
  data.frame(df,pred)
}
iris %>%
  group_by(Species) %>%
  do(m(.))
Run Code Online (Sandbox Code Playgroud)

我认为如果我使用匿名函数,这将有效,但它没有:

iris %>%
  group_by(Species) %>%
  do(function(df) {
    mod <- lm(Sepal.Length ~ Sepal.Width, data = df)
    pred <- predict(mod,newdata = df["Sepal.Width"])
    data.frame(df,pred)
  })
Error: Results are not data frames at positions: 1, 2, 3
Run Code Online (Sandbox Code Playgroud)

r dplyr

17
推荐指数
2
解决办法
2709
查看次数

解析html包含&nbsp; (不间断的空间)

我正在rvest用来解析一个网站.我正在用这些小小的不间断空间撞墙.如何删除&nbsp;解析后的html文档中元素创建的空格?

library("rvest")
library("stringr")  

minimal <- html("<!doctype html><title>blah</title> <p>&nbsp;foo")

bodytext <- minimal %>%
  html_node("body") %>% 
  html_text
Run Code Online (Sandbox Code Playgroud)

现在我已经提取了正文:

bodytext
[1] " foo"
Run Code Online (Sandbox Code Playgroud)

但是,我无法删除那个讨厌的空白!

str_trim(bodytext)

gsub(pattern = " ", "", bodytext)
Run Code Online (Sandbox Code Playgroud)

r stringr

8
推荐指数
3
解决办法
3810
查看次数

dplyr left_join匹配NA

当沿着键连接data.frames,并且一个键具有缺失值(NA)时,我的直觉是具有NA键的行在第二个data.frame中应该没有匹配.令我惊讶的是,如果两个data.frame中都有NA,则dplyr将它们匹配,就像它们是值一样.

这是另外令人困惑的,因为详细讨论了dplyr存储库中的问题,请看这里,它似乎已经解决了!如果是这样,我没有看到这是正确的解决方案; 或许我错过了什么

我正在使用dplyr 0.7.4


t1 <- data.frame(a = as.character(c("1", "2", NA, NA, "4", "2")), b = c(1, 2, 3, 3, 4, 5), stringsAsFactors = FALSE)
t2 <- data.frame(a = as.character(c("1", "2", NA)), c = c("b", "n", "i"), stringsAsFactors = FALSE)
library(dplyr)
t1
#>      a b
#> 1    1 1
#> 2    2 2
#> 3 <NA> 3
#> 4 <NA> 3
#> 5    4 4
#> 6    2 5
t2
#>      a c
#> 1    1 b …
Run Code Online (Sandbox Code Playgroud)

r dplyr

7
推荐指数
1
解决办法
1449
查看次数

使用httr对github私有存储库进行身份验证

我正在尝试使用Github访问私有存储库httr.如果我添加我的github令牌(存储为环境变量GITHUB_TOKEN),我可以毫无问题地执行此操作:

httr::GET("https://api.github.com/repos/aammd/miniature-meme/releases/assets/2859674",
                 httr::write_disk("test.rds", overwrite = TRUE),
                 httr::progress("down"),
                 httr::add_headers(Authorization = paste("token", Sys.getenv("GITHUB_TOKEN"))))
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试指定另一个标头,我会收到错误.在这种情况下,我想下载与发布相关联的二进制文件("资产",在github术语中):

httr::GET("https://api.github.com/repos/aammd/miniature-meme/releases/assets/2859674",
                 httr::write_disk("test.rds", overwrite = TRUE),
                 httr::progress("down"),
                 httr::add_headers(Authorization = paste("token", Sys.getenv("GITHUB_TOKEN"))),
                 httr::add_headers(Accept = "application/octet-stream"))


?xml version="1.0" encoding="UTF-8"?>
<Error><Code>InvalidArgument</Code><Message>Only one auth mechanism allowed; only the X-Amz-Algorithm query parameter, Signature query string parameter or the Authorization header should be specified</Message>
Run Code Online (Sandbox Code Playgroud)

这只是消息的一部分(其余包括我的令牌).

显然我的授权被发送了两次!我怎么能阻止这个?它与...有关httr::handle_pool()

编辑 - 连接信息

看来原始请求收到一个包含签名的回复.然后将此签名与我的令牌一起发回,从而导致错误.这些人也发生了类似的事情

-> GET /repos/aammd/miniature-meme/releases/assets/2859674 HTTP/1.1
-> Host: api.github.com
-> User-Agent: libcurl/7.43.0 r-curl/2.3 httr/1.2.1.9000
-> Accept-Encoding: gzip, deflate
-> Authorization: …
Run Code Online (Sandbox Code Playgroud)

r github httr

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

R中的read.table和注释

我想将元数据添加到我的电子表格作为评论,然后R忽略这些.

我的数据是形式的

v1,v2,v3,
1,5,7,
4,2,1,#possible error,
Run Code Online (Sandbox Code Playgroud)

(它的例外情况要长得多.第一条评论实际上显示在前5行之外,用于scan确定列数)

我一直在努力:

read.table("data.name",header=TRUE,sep=",",stringsAsFactors=FALSE,comment.char="#")
Run Code Online (Sandbox Code Playgroud)

但是read.table(并且,就此而言count.fields)认为我还有一个比我实际做的更多的领域.我的数据框最后是一个名为"X"的空白列.我认为这是因为我的电子表格程序在每行的末尾都添加了逗号(如上例所示).

使用flush=TRUE没有效果,即使(根据帮助文件)它"[...]允许在最后一个字段后面添加注释[...]"

使用colClasses=c(rep(NA,3),NULL)也没有效果.

我之后可以删除该列,但由于这似乎是一种常见的做法,我想学习如何正确地做到这一点.

谢谢,

安德鲁

metadata r read.table

5
推荐指数
2
解决办法
1319
查看次数

httr/curl中的SSL连接错误

我正试图访问一个开放的API httr,并且没有运气.每当我尝试:

httr::GET("https://api.openaq.org/v1/countries")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error in curl::curl_fetch_memory(url, handle = handle) : 
   SSL connect error
Run Code Online (Sandbox Code Playgroud)

但是,例如,与https的其他连接工作正常

httr::GET("https://httpbin.org/get")
Run Code Online (Sandbox Code Playgroud)

这是输出sessionInfo():

R version 3.2.3 (2015-12-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.3 LTS

locale:
 [1] LC_CTYPE=en_CA.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_CA.UTF-8        LC_COLLATE=en_CA.UTF-8    
 [5] LC_MONETARY=en_CA.UTF-8    LC_MESSAGES=en_CA.UTF-8   
 [7] LC_PAPER=en_CA.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods  
[7] base     

loaded via a namespace (and not attached):
[1] httr_1.0.0.9000 R6_2.1.2        tools_3.2.3     curl_0.9.5     
Run Code Online (Sandbox Code Playgroud)

在终点站,如果我跑,curl-config --version我得到

libcurl …
Run Code Online (Sandbox Code Playgroud)

r httr

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

标签 统计

r ×6

dplyr ×2

httr ×2

github ×1

metadata ×1

read.table ×1

stringr ×1