小编cra*_*lly的帖子

R中RandomForest包中的RandomForest函数中的参数'classwt'代表什么?

帮助页面randomforest::randomforest()说:

"classwt - 类的推荐.不需要加一个.忽略回归."

classwt当您有大量不平衡数据时,可以设置参数帮助,即.班级的先辈们有很大的不同?

如何classwt在具有3个类的数据集上训练模型时,如果先验矢量等于(p1,p2,p3),并且在测试集先验中是(q1,q2,q3)?

r random-forest

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

如何在r包中包含RMarkdown文件?

我正在使用R创建一个包,我也希望包含一个R Markdown文件.这个RMarkdown模板包含我的包中的函数,并通过knitr呈现给html文档.

目标是定期运行一个函数(通过cronjob),该函数呈现RMarkdown文件以生成每周报告.

如何将这些文件添加到R包(如.Rmd)并在进行函数调用时引用.Rmd来呈现所述模板?

r knitr r-markdown

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

如何使用quosures将命名向量传递给dplyr :: select?

使用旧select_()函数,我可以将命名向量传递给select并立即更改位置和列名:

my_data  <- data_frame(foo = 0:10, bar = 10:20, meh = 20:30)
my_newnames  <-  c("newbar" = "bar", "newfoo" = "foo")

move_stuff  <- function(df, newnames) {
    select_(df, .dots = newnames)
}

move_stuff(my_data,  newnames = my_newnames) )

# this is the desired output
# A tibble: 4 x 2
  newbar  newfoo
   <int>   <int>
1     10       0
2     11       1
3     12       2
4     13       3
Run Code Online (Sandbox Code Playgroud)

我尝试使用quosures和拼接做类似的事情 - 选择列效果很好,但是矢量的名称(因此同时重命名列)似乎被忽略了.以下两个都返回数据框,列中包含名称barfoo,但不是newbarnewfoo:

move_stuff2  <- function(df, newnames) …
Run Code Online (Sandbox Code Playgroud)

r dplyr nse rlang

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

dplyr 可以使用 by= 中的正则表达式连接两个数据框吗?

有没有办法使用 dplyr 的连接运算符连接两个数据帧,但使用正则表达式而不是直接 by=c('foo' = 'bar') ?

就像是:

people  <- data.frame(
     id = 1:10
   , emp = c("Caterpillar", "FEMA", "Community Hospital", "Gessert Grp.", "AT&T", "IBM Corp.", NA, "Smartguy Community College", NA, NA))



employers  <- data.frame(
     employerID     = c(1, 2, 3, 4, 5)
   , employerName   = c("Caterpillar Foundation", "Eli Lilly and Company Foundation Inc.", "Archer Daniels Midland Co", "IBM Corporation", "State Farm Co.  Foundation Matching Gifts")
   , employerRegexp = c("Caterpillar", "El *Lilly", "Archer *Daniels|ADM", "IBM", "State *Farm")
   )

peoplewRealEmployerNames  <- people …
Run Code Online (Sandbox Code Playgroud)

regex join r dplyr

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

使用 any() 与 | 在 dplyr::mutate 中

当我比较 中的列时,为什么要使用|vs ?any()dplyr::mutate()

为什么他们返回不同的答案?

例如:

library(tidyverse)
df  <- data_frame(x = rep(c(T,F,T), 4), y = rep(c(T,F,T, F), 3), allF  = F, allT = T)

 df %>%
     mutate( 
          withpipe = x | y # returns expected results by row
        , usingany = any(c(x,y)) # returns TRUE for every row
     )
Run Code Online (Sandbox Code Playgroud)

这里发生了什么,为什么我应该使用一种方法来比较另一种值?

r dplyr tidyverse

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

使用dplyr进行SQL in-db操作时的ifelse和grepl命令

在运行R数据帧的dplyr中,它很容易运行

df <- df %>% 
    mutate(income_topcoded = ifelse(income > topcode, income, topcode)
Run Code Online (Sandbox Code Playgroud)

我现在正在使用大型SQL数据库,使用dplyr将命令发送到SQL服务器.当我运行相同的命令时,我会回来

Error in postgresqlExecStatement(conn, statement, ...) : 
RS-DBI driver: (could not Retrieve the result : ERROR:  
function ifelse  (boolean, numeric, numeric) does not exist
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)

你会如何建议实施ifelse()声明?我对PivotalR中的东西很好(这似乎支持ifelse(),但我不知道如何将它与dplyr集成,并且在SO上找不到任何示例),我可以在线使用的一些SQL语法在这里,或者dplyr的一些我不知道的特征.

(我有同样的问题,我想grepl()用作in-db操作,但我不知道该怎么做.)

sql postgresql r dplyr

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

我如何使用magrittr :: inset()?

我知道magrittr::inset()应该能够将一个向量分配给数据帧中的新列(作为一种相反的方式extract()).但我不明白语法应该如何工作.

说我有,作为一个玩具示例:

df = data.frame( id = 1:26, letter = letters)
newvalue = rnorm(26)
Run Code Online (Sandbox Code Playgroud)

我想在magrittr链中添加newvalue作为df的新列.我假设它是这样的:

df %>%
  inset('new_column_name', newvalue)
Run Code Online (Sandbox Code Playgroud)

但是,这并不工作,大概是因为我不太理解的语法是什么[<-(对于这inset()是一个别名)应该像.

在magrittr链之外,我可以这样做:

df['new_column_name']  <- newvalue
Run Code Online (Sandbox Code Playgroud)

但我的问题是如何在一个链条中做到这一点,我已经完成了各种各样的操作.

r magrittr

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

在R的正则表达式中是否有等效的"&"用于反向整个匹配

当我使用vim时,我经常使用&反向替换整个匹配.例如,以下内容将"foo"的所有实例替换为"foobar":

%s/foo/&bar/g
Run Code Online (Sandbox Code Playgroud)

这里的好处是懒惰:我不必在匹配中键入括号,我只需要为替换中的反向引用键入一个字符而不是两个字符.也许更重要的是,在我输入比赛时,我没有弄清楚我的背叛,减少了认知负担.

是否有一个等同于&我在R的正则表达式中使用vim(可能使用perl = T参数)?

regex backreference r capture-group

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

RMarkdown:控制 SQL 结果中每页结果数的选项?

我在 RMarkdown 文档中编写了一个 SQL 块:

```{sql, connection = con, max.print = 300}
      select * from myTable
```
Run Code Online (Sandbox Code Playgroud)

当我在 RStudio 中运行该块时,这将按预期在漂亮的表格中打印 300 行。

但是,我希望能够控制打印表格第一页上显示的结果数量 - 现在,RStudio 每页显示 10 行,并带有页面控件以跳转到我感兴趣的任何页面。

是否有一个代码块选项可以用来控制结果表中每页显示的结果数?

不管它的价值如何,我真的只对内联代码执行感兴趣——我并不真正关心编写文档时会发生什么,只关心在 RStudio 中运行该块时会出现什么。

r rstudio knitr r-markdown

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

如何反转dplyr :: select的辅助函数?

如何反转辅助函数dplyr::select()(如matches()contains()),以便我可以选择不包含或匹配特定字符串的变量?

例如,假设我想选择mtcars数据框中没有字母"m"的所有列.我可以想象做类似的事情:

mtcars %>%
    select( !matches("m") )
Run Code Online (Sandbox Code Playgroud)

但是这会引发错误:

Error: !matches("m") must resolve to integer column positions, not a logical vector

如何编写辅助函数来反转它?

重要提示:一种可能性是使用matches()和编写一个不匹配的正则表达式,但我更感兴趣的是找到一种方法来维护辅助函数的简单性,但是反转它们返回的选择,而不是解决实际的"我如何选择这样的"问题.

r dplyr

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