小编itp*_*sen的帖子

在R中刮掉受密码保护的网站

我试图从R中受密码保护的网站上抓取数据.看来,httr和RCurl软件包似乎是使用密码认证进行抓取的最佳选择(我也查看了XML包).

我试图抓取的网站如下(您需要一个免费帐户才能访问整个页面):http: //subscribers.footballguys.com/myfbg/myviewprojections.php ?projector = 2

这是我的两次尝试(用我的用户名替换"username",用我的密码替换"password"):

#This returns "Status: 200" without the data from the page:
library(httr)
GET("http://subscribers.footballguys.com/myfbg/myviewprojections.php?projector=2", authenticate("username", "password"))

#This returns the non-password protected preview (i.e., not the full page):
library(XML)
library(RCurl)
readHTMLTable(getURL("http://subscribers.footballguys.com/myfbg/myviewprojections.php?projector=2", userpwd = "username:password"))
Run Code Online (Sandbox Code Playgroud)

我查看了其他相关帖子(下面的链接),但无法弄清楚如何将他们的答案应用到我的案例中.

如何使用R从需要cookie的SSL页面下载压缩文件

如何用R(https链接)webscrape安全页面(使用XML包中的readHTMLTable)?

从受密码保护的站点读取信息

R - RCurl从受密码保护的站点获取数据

http://www.inside-r.org/questions/how-scrape-data-password-protected-https-website-using-r-hold

xml r web-scraping rcurl httr

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

提取列表中每个元素的第二个子元素,同时忽略R中的sapply中的NA

我正在尝试提取列表中每个元素的第二个子元素,同时忽略R中的NA.这是一个小例子:

mylist <- list(a=c(6,7),b=NA,c=c(8,9))
sapply(mylist, "[[", 1)
sapply(mylist, "[[", 2) #receive error
Run Code Online (Sandbox Code Playgroud)

因为元素'b'只有一个子元素(NA),所以在尝试提取第二个子元素时收到以下错误:

Error in FUN(X[[2L]], ...) : subscript out of bounds
Run Code Online (Sandbox Code Playgroud)

我的目标是输出为:7,NA,9.换句话说,我想忽略并保留NA,以便输出与列表中元素的数量相同.我希望解决方案足够通用,也可以将它应用于每个列表中的不同子元素n.

r list apply sapply na

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

生成N个随机整数,其总和为R中的M.

我想生成N总和的随机正整数M.我希望在一个相当正态的分布周围选择随机正整数,其均值是M/N,标准差很小(是否可以将其设置为约束?).

最后,您如何概括产生N个随机正数(不仅仅是整数)的答案?

我发现了其他相关问题,但无法确定如何将答案应用于此背景:https: //stats.stackexchange.com/questions/59096/generate-three-random-numbers-that-sum-to-1-在-R

生成R中总和为1的3个随机数

R - 具有预定义总数的整数的随机近似正态分布

random simulation r

16
推荐指数
1
解决办法
6662
查看次数

根据多个键控列将缺少的行添加到data.table

我有一个data.table对象,其中包含多个指定唯一案例的列.在下面的小示例中,变量" name"," job"和" sex"指定唯一ID.我想添加缺失的行,以便每个case都有一行用于另一个变量的每个可能实例," from"(类似于expand.grid).

library(data.table)
set.seed(1)
mydata <- data.table(name = c("john","john","john","john","mary","chris","chris","chris"),
                 job = c("teacher","teacher","teacher","teacher","police","lawyer","lawyer","doctor"),
                 sex = c("male","male","male","male","female","female","male","male"),
                 from = c("NYT","USAT","BG","TIME","USAT","BG","NYT","NYT"),
                 score = rnorm(8))

setkeyv(mydata, cols=c("name","job","sex"))

mydata[CJ(unique(name, job, sex), unique(from))]
Run Code Online (Sandbox Code Playgroud)

这是当前的data.table对象:

> mydata
    name     job    sex from      score
1:  john teacher   male  NYT -0.6264538
2:  john teacher   male USAT  0.1836433
3:  john teacher   male   BG -0.8356286
4:  john teacher   male TIME  1.5952808
5:  mary  police female USAT  0.3295078
6: chris  lawyer female …
Run Code Online (Sandbox Code Playgroud)

merge r cross-join data.table

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

如何包含 R6 对象以在 golem Shiny 应用程序中跨模块共享数据

我\xe2\x80\x99m第一次尝试创建一个Shiny应用程序。使用模块构建应用程序,以帮助保持大型应用程序的模块化。但是,默认情况下,模块之间不\xe2\x80\x99 相互通信。I\xe2\x80\x99d 喜欢跨模块共享数据。根据文档,对象是跨模块共享数据的有用方法golemgolemShinyShinygolemR6

\n

然而,在文档中提供的示例golem中,并不清楚将R6生成器放在哪里。根据Appsilon 的说法,R6生成器进入一个单独的.R文件(例如logger_manager.R),并进行调用global.R以从类构造一个新对象:logger_manager = LoggerManager$new()。但是,基于 的应用程序中没有global.R文件。golemShiny

\n

golem下面是我的应用程序的一个最小示例Shiny我尝试遵循文档中提供的示例golem中的结构,但它似乎没有跨模块共享数据:

\n

app_ui.R:

\n
app_ui <- function(request) {\n  tagList(\n    # Leave this function for adding external resources\n    golem_add_external_resources(),\n    \n    # List the first level UI elements here \n    fluidPage(\n      mod_a_ui("a_ui_1"),\n …
Run Code Online (Sandbox Code Playgroud)

module r shiny r6 golem

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

R (dplyr) 中重置的条件运行计数(累积和)

我正在尝试计算一个运行计数(即累积和),该计数以其他变量为条件,并且可以针对另一个变量的特定值进行重置。我正在 R 工作,dplyr如果可能的话,我更喜欢基于 - 的解决方案。

我想cumulative根据以下算法为运行计数创建一个变量:

  • 计算和cumulative组合内的运行计数 ( )idage
  • 对于每个后续的where 、和 ,将运行计数 ( cumulative) 加 1trialaccuracy = 0block = 2condition = 1
  • 对于每个、、 和,将运行计数 ( cumulative) 重置为 0 ,并且下一个增量从 1 恢复(不是之前的数字)trialaccuracy = 1block = 2condition = 1
  • 对于每个trialwhere block != 2, or condition != 1,将运行计数 ( cumulative) 保留为NA

这是一个最小的工作示例:

mydata <- data.frame(id = c(1,1,1,1,1,1,1,1,1,1,1),
                 age = …
Run Code Online (Sandbox Code Playgroud)

r conditional-statements cumulative-sum dplyr

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

在不同的文件位置从 R Markdown 创建 PDF

我正在尝试使用 R 中的rmarkdown包和 pandoc从 R Markdown (.Rmd) 文档创建 PDF。我遇到的问题是我想在不同的文件夹中创建一个 PDF,并使用不同的文件名.Rmd 文件的文件名/文件夹。我正在运行 MiKTeX 2.9、RStudio 0.98.1087、rmarkdown 0.3.3、pandoc 1.13.1、R 3.0.2 和 Windows 7-64 位。输入文件名为“ Cases by Measure and Site.Rmd”。我希望输出文件被命名<date>.pdf并放置在以下目录中(相对于 .Rmd 文件):./Output/Cases by Measure and Site/

我可以在同一个文件位置创建一个没有问题的 PDF:

library("rmarkdown")
render(input="./R Scripts/Reports/Cases by Measure and Site.Rmd",
       output_format="pdf_document")
Run Code Online (Sandbox Code Playgroud)

这是我在不同位置创建 PDF 的尝试:

library("rmarkdown")
date <- Sys.Date()
render(input="./R Scripts/Reports/Cases by Measure and Site.Rmd",
       output_format="pdf_document",
       output_file=paste("./R Scripts/Reports/Output/Cases by Measure and Site/", date, ".pdf", sep=""))
Run Code Online (Sandbox Code Playgroud)

这是我在尝试将文件渲染到新位置时收到的错误:

"C:/Program Files/RStudio/bin/pandoc/pandoc" Cases_by_Measure_and_Site.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures --output …
Run Code Online (Sandbox Code Playgroud)

latex r pdflatex pandoc r-markdown

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

使用R中的线性(或非线性?)约束来优化值

我试图挑选最好的幻想足球队给出不同的约束.我的目标是选择最大化其预测点总和的玩家.

限制是:

1)团队必须包括:

-1 QB

-2个RB

-2 WRs

-1 TE

2)球员的风险不得超过6

3)球员费用总和不得超过300.

我怎样才能做到这一点?R中优化这些约束的最佳包/功能是什么?在给定这些约束的情况下,函数调用的最大化是什么?仅供参考,我将搜索100-300名玩家.

提前致谢!这是一个小示例数据集:

name <- c("Aaron Rodgers","Tom Brady","Arian Foster","Ray Rice","LeSean McCoy","Calvin Johnson","Larry Fitzgerald","Wes Welker","Rob Gronkowski","Jimmy Graham")

pos <- c("QB","QB","RB","RB","RB","WR","WR","WR","TE","TE")

pts <- c(167, 136, 195, 174, 144, 135, 89, 81, 114, 111) 

risk <- c(2.9, 3.4, 0.7, 1.1, 3.5, 5.0, 6.7, 4.7, 3.7, 8.8) 

cost <- c(60, 47, 63, 62, 40, 60, 50, 35, 40, 40) 

mydata <- data.frame(name, pos, pts, risk, cost) 
Run Code Online (Sandbox Code Playgroud)

optimization r constraints linear-programming

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

将Infopath .XML表单导入R中的数据框

在R中导入Infopath .XML表单并转换为数据帧的最佳方法是什么?如果我在Excel中打开Infopath .XML文件,则数据框的行和列会正确显示.

这是我在R中使用XML包尝试的内容:

  1. 我使用xmlParse()来解析XML文件
  2. 我使用xmlToDataFrame()尝试将解析后的XML文件转换为数据框

但是,在第2步中,我收到以下错误:

Error in `[<-.data.frame`(`*tmp*`, i, names(nodes[[i]]), value = c("touch your head13011000",  : 
  duplicate subscripts for columns
Run Code Online (Sandbox Code Playgroud)

但是,当我在Excel中打开XML文件时,似乎没有重复的列.如何将此XML文件从Infopath转换为R中的数据框?预期的列应该是(因为它们出现在Excel中):

TCID, DateCoded, tcAge, T1_B3, T1_B2, T1_B1, T1_B0, T1_A3, T1_A2, T1_A1, T1_A0, T1_DelayTotal, T2_A3, T2_A2, T2_A1, T2_A, T2_B3, T2_B2, T2_B1, T2_B0, T2_DelayTotal, Coder, notes_t1, note_t2, bachildpres30, baparpres30, bapassptgo, bapassptnogo, bamissgame, P1_B3, P1_B2, P1_B1, P1_B0, P1_A3, P1_A2, P1_A1, P1_A0, P1_DelayTotal, P1_action, P1_go-nogo, P1_score, P1_delay, P1_trial, P1_Ecommand, P1_imitation, P1_restraint, P1_ruleswitch, P1_trials, P1_gotrials, P1_nogotrials, T1_gotrials, T1_nogotrials, T1_trials, T2_gotrials, T2_nogotrials, T2_trials, P1_notplay, …
Run Code Online (Sandbox Code Playgroud)

xml infopath r infopath-forms-services xml-parsing

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

有条件地在数据帧中对闪亮的新变量进行子集化和计算

我试图在Shiny中的数据框中计算一个新变量,该变量是在另一个变量上有条件地计算的.

这是我正在尝试做的一个小例子:

mydata <- data.frame(cbind(x = 1, y = 1:10))
value <- 10 #from user input
mydata$z[mydata$y >= 5] <- mydata$y[mydata$y >= 5] + value
mydata$z[mydata$y < 5] <- mydata$y[mydata$y < 5] - value
Run Code Online (Sandbox Code Playgroud)

这是我的ui.R文件:

#Library
library("shiny")

# Define UI for miles per gallon application
shinyUI(pageWithSidebar(

  # Application title
  headerPanel("Test"),

  sidebarPanel(
    numericInput("value", "Enter Value:", 10)
  ),

  mainPanel(
    tableOutput("table")
  )
)
)
Run Code Online (Sandbox Code Playgroud)

这是我的server.R文件:

#Libraries
library(shiny)

#Load Data
mydata <- data.frame(cbind(x = 1, y = 1:10))

# Define server logic
shinyServer(function(input, output) …
Run Code Online (Sandbox Code Playgroud)

r dataframe shiny

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

在 R/tidyverse 中使用pivot_wider() 将所有列转得更宽(ID 列除外)

I\xe2\x80\x99m 尝试将R. 我正在尝试使用 使所有列更宽(唯一标识观察值的列除外)pivot_wider()。这是一个最小的工作示例:

\n
library("tidyr")\n\nset.seed(12345)\n\nsampleSize <- 10\ntimepoints <- 3\nraters <- 2\n\ndata_long <- data.frame(ID = rep(1:sampleSize, each = timepoints * raters),\n                        time = rep(1:timepoints, times = sampleSize * raters),\n                        rater = rep(c("a","b"), times = sampleSize * timepoints),\n                        v1 = sample.int(99, sampleSize * timepoints * raters, replace = TRUE),\n                        v2 = sample.int(99, sampleSize * timepoints * raters, replace = TRUE),\n                        v3 = sample.int(99, sampleSize * timepoints * raters, replace = TRUE),\n                        v100 = sample.int(99, sampleSize * timepoints …
Run Code Online (Sandbox Code Playgroud)

r data-manipulation dataframe tidyr tidyverse

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

在R中将变量转换为伽玛分布

我有一个变量,我想转换为具有已知形状和速率参数的伽玛分布.如何将变量转换为R中的gamma分布?我已经研究了dgamma,pgamma和qgamma函数,但我不知道是否会有我想做的事情.

这是一个小例子:

variable <- rnorm(100)
shape <- .83
rate <- .01
Run Code Online (Sandbox Code Playgroud)

注意:我意识到这个例子使用的是正态分布式数据(不适合伽玛分布),但我需要将变量重新调整为原始的伽玛分布.

r gamma-distribution

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