小编Wie*_*314的帖子

Rmarkdown中的插入符doparallel:使用render()时缺少详细信息

我有以下简单的示例Rmarkdown文档(test.Rmd):

---
title: "Test Knit Caret Paralell VerboseIter"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)

require(caret)
require(doParallel)


```

## data

```{r data}

set.seed(998)
training <- twoClassSim()

```

## model

```{r fitmodel}
fitControl <- trainControl(
  method = "repeatedcv",
  number = 3,
  repeats = 2,
  verboseIter = T)


ncores <- detectCores()-1

cl <<- makePSOCKcluster(ncores, verbose = TRUE, outfile = "")
registerDoParallel(cl)

set.seed(825)
Fit <- train(Class ~ ., 
             data = training, 
             method = "nnet", 
             trControl = fitControl,
             trace = …
Run Code Online (Sandbox Code Playgroud)

r r-caret doparallel

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

R knitr在表头kable()中添加换行符

我正在使用knitr生成一些报告.我使用kable在文档中生成HTML表.在标题中,我想使用换行符(或其他html标记)来增强表格

<!--begin.rcode results='asis'
s <- rbind(c(1,2,3,4),c(1,2,3,4),c(1,2,3,4))
kable(s, col.names=c("Try Newline\nn","Try HTML break<br>%","Past 6 months\nn","\n%"))
end.rcode-->
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我正在尝试不同的选择而没有太大成功.在我的结果中,换行符(\n)只是在HTML源代码中的换行符中翻译.
标签被翻译为HTML特殊字符.

有什么建议?

html r knitr

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

防止目标数据库处于还原模式时出错(sql 准备)

我有一个每晚运行的存储过程。它从链接服务器中提取一些数据并将其插入到运行 sql 代理作业的服务器上的表中。在运行 INSERT 语句之前,该过程会检查链接服务器上的数据库是否联机 (STATE = 0)。如果不是,则不运行 INSERT 语句。

IF EXISTS(
SELECT *
FROM OPENQUERY(_LINKEDSERVER,'
SELECT name, state FROM sys.databases
WHERE name = ''_DATABASENAME'' AND state = 0')
)
BEGIN
INSERT INTO _LOCALTABLE (A, B)
SELECT A, B FROM _LINKEDSERVER._DATABASENAME.dbo._REMOTETABLE
END
Run Code Online (Sandbox Code Playgroud)

但是,当远程数据库处于还原模式时,该过程会出错(无法完成延迟准备)。这是因为在运行整个脚本之前评估 BEGIN 和 END 之间的语句。IF 评估不正确时也是如此。并且因为 _DATABASENAME 处于恢复模式,这已经给出了错误。

作为一种解决方法,我将 INSERT 语句放在执行函数中:

EXECUTE('INSERT INTO _LOCALTABLE (A, B) 
SELECT A, B FROM _LINKEDSERVER._DATABASENAME.dbo._REMOTETABLE')
Run Code Online (Sandbox Code Playgroud)

但是在使用这部分 sql 之前,是否有另一种更优雅的解决方案来防止对该语句的评估?

我的方案涉及链接服务器。当然,同样的问题是当数据库在同一台服务器上时。

我希望有一些我还不知道的命令,这会阻止 IF 中的评估语法:

IF(Evaluation)
BEGIN
    PREPARE THIS PART ONLY IF Evaluation …
Run Code Online (Sandbox Code Playgroud)

sql prepared-statement sql-server-2008

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

使用dplyr链从因子标签中删除尾随空格

我有一个加载的数据帧,在因子标签中有空白空格.我试图删除数据帧中每个因素的尾随空格,但到目前为止都没有成功.

可重复的例子

lvls <- c('a   ',
          'b   ',
          'c   ')
set.seed(314)
raw <- data.frame(a = factor(sample(lvls,100, replace=T)),
                  b = sample(1:100,100))

proc <- raw %>% mutate_each(funs(ifelse(is.factor(.),
                                        factor(as.character(trimws(.)),
                                               labels=unique(as.character(.))),
                                        .))) 

str(proc)
Run Code Online (Sandbox Code Playgroud)

'data.frame':   100 obs. of  2 variables:
 $ a: int  1 1 1 1 1 1 1 1 1 1 ...
 $ b: int  31 31 31 31 31 31 31 31 31 31 ...
Run Code Online (Sandbox Code Playgroud)

在两个层面上哪个错了.该因素没有标签.只有第一次观察重复100次

r dplyr

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

如何group_by(everything())

我想使用数据框计算唯一的组合 dplyr

我尝试了以下方法:

require(dplyr)

set.seed(314)
dat <- data.frame(a = sample(1:3, 100, replace = T),
                  b = sample(1:2, 100, replace = T),
                  c = sample(1:2, 100, replace = T))

dat %>% group_by(a,b,c) %>% summarise(n = n())
Run Code Online (Sandbox Code Playgroud)

但为了使这个通用(与列的名称无关),我试过:

dat %>% group_by(everything()) %>% summarise(n = n())
Run Code Online (Sandbox Code Playgroud)

结果如下:

    a     b     c     n
<int> <int> <int> <int>
1      1     1     1     6
2      1     1     2     8
3      1     2     1    13
4      1     2     2     8
5      2     1     1     7
6      2     1 …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

R dplyr:在下一列的一列中使用该函数作为字符串

我想使用dplyr将一个函数应用于另一列中的值,该函数将名称作为字符串存储在列中.我已经尝试了几个使用mutate_.dots争论的东西,但我现在被困住了.

library(lubridate)
library(dplyr)

df <- data.frame(date=as.POSIXct('2017/01/01 12:34') + 1:10*123456,
                 fun=rep(c('minute','hour','day','month','year'),2))
Run Code Online (Sandbox Code Playgroud)

输入:

> df
                  date    fun
1  2017-01-02 22:51:36 minute
2  2017-01-04 09:09:12   hour
3  2017-01-05 19:26:48    day
4  2017-01-07 05:44:24  month
5  2017-01-08 16:02:00   year
6  2017-01-10 02:19:36 minute
7  2017-01-11 12:37:12   hour
8  2017-01-12 22:54:48    day
9  2017-01-14 09:12:24  month
10 2017-01-15 19:30:00   year
Run Code Online (Sandbox Code Playgroud)

输出:

                  date    fun  res
1  2017-01-02 22:51:36 minute   51
2  2017-01-04 09:09:12   hour    9
3  2017-01-05 19:26:48    day    5
4  2017-01-07 …
Run Code Online (Sandbox Code Playgroud)

r lubridate dplyr

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

闪亮的交互式ggplot缺少错误栏

我的闪亮应用程序中有一个交互式情节.在这个图中,我可以将数据点标记为人工制品.部分数据绘制为折线图,部分绘制为误差线.

我使用以下ggplot代码:

ggplot(plotdat,
       aes(x = time, y = value, color = type)) +
  labs(title = "vitals from test") +
  geom_errorbar(data = nibpdat, 
                aes(x = time, 
                    ymin = dianibp, 
                    ymax = sysnibp), 
                position = position_dodge(.1)) +
  scale_color_manual(values = vitalpalette) +
  geom_point() +
  geom_line(data = plotdat %>% filter(!grepl("NIBP$", type))) +
  geom_point(data = plotdat %>% filter(artefact),mapping = aes(x = time, y = value, color = type),
             shape = 4, size = 2, stroke = 2) +
  theme_bw()
Run Code Online (Sandbox Code Playgroud)

当我在闪亮的应用程序之外测试这个情节时,它有效.所有错误栏都保持可见.但是如果nibpdat标记了一个点,则在闪亮的应用程序内(列artefact …

r ggplot2 shiny

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

R 从管道列表中选择项目

我想在使用 purrr:map 对其应用另一个函数之前按索引从列表中选择项目。我尝试了以下方法,但找不到有效的方法。

require(dplyr)
require(purrr)

dat <- list(1:3,
     4:6,
     letters[1:3])

# I can select one item

dat[1]

# I can select two items

dat[c(1,2)]

# But how can I do this in a pipeline by index?

dat %>% map(mean)

dat %>%
  filter(c(1,2)) %>%
  map(mean)

dat %>%
  keep(1,2) %>%
  map(mean)

dat %>%
  select(1,2) %>%
  map(mean)
Run Code Online (Sandbox Code Playgroud)

r list subset magrittr purrr

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