У меня возникла странная проблема, которую я не могу решить.r выражение работает в ddply() в R, но не в блестящей уценке
следующий код отлично работает в R студии:
> set.seed(12345)
>
> library(plyr)
> library(dplyr)
>
> dt <- data.frame(a=1:10, b=sample(1:3, 10, replace=T))
>
> var <- "a"
> formula <- parse(text=paste0(var, "+1"))[[1]]
>
> print(dt)
a b
1 1 3
2 2 3
3 3 3
4 4 3
5 5 2
6 6 1
7 7 1
8 8 2
9 9 3
10 10 3
>
> # this works in R Studio, but not in markdown
> res <- dt %>%
+ ddply(.(b), transform, diff = eval(formula))
> print(res)
a b diff
1 6 1 7
2 7 1 8
3 5 2 6
4 8 2 9
5 1 3 2
6 2 3 3
7 3 3 4
8 4 3 5
9 9 3 10
10 10 3 11
Когда я запускаю тот же код в R уценкой, я получаю сообщение об ошибке, говорящее
Error: arguments imply differing number of rows: 2, 0
Что здесь происходит? Вот моя уценка код:
---
title: "Untitled"
author: "Author"
date: "8/29/2016"
output: html_document
runtime: shiny
---
```{r}
set.seed(12345)
library(plyr)
library(dplyr)
dt <- data.frame(a=1:10, b=sample(1:3, 10, replace=T))
formula <- parse(text=paste0("a", "+1"))[[1]]
#this does work in R, but not in markdown
res <- dt %>%
ddply(.(b), transform, diff = eval(formula))
res
```
Благодаря
не удается воспроизвести. Результат на моей машине такой же, как и выше. – nilsole
Вы запустили последний блок кода в документе уценки? Код запускается в r studio, только не в уценке r. – chungkim271
@ chungkim721 Я взял ваш код, сохраненный в файл, запустил эту вещь с помощью 'rmarkdown :: run' в RStudio и смог получить доступ к приложению через localhost в Chrome. Развертывались ли вы на сервере или что именно вы подразумеваете под «in r markdown»? – nilsole