小编ali*_*ire的帖子

如何在 R Shiny 中添加更大的文本输入框?

我正在创建一个 Shiny 应用程序,其中一部分我需要用户输入文本摘要,但是应用程序中出现的文本输入框的默认大小非常小。用户难以输入 3-4 行的摘要。你能帮我写一个可以使文本输入框变大的脚本吗?非常感谢您的帮助!

来自我的应用程序的快照

============ 我只是用 HTML 标签尝试了以下内容:

library(shiny)

shinyUI(fluidPage(
  sidebarLayout(
    sidebarPanel(
      tags$textarea(id="my_textarea", rows=5, "Leave a comment...")
    ),
    mainPanel(
      uiOutput("my_output")
    )
  )
))
Run Code Online (Sandbox Code Playgroud)

但出现了一些错误 - 如下所示!

r shiny shiny-server

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

如何使用R中的readHTMLTable读取已注释掉的HTML表

在过去,我已经能够在R中使用readHTMLTable来提取一些足球统计数据.当今年再次尝试这样做时,表格没有显示,即使它们在网页上可见.以下是一个示例:http://www.pro-football-reference.com/boxscores/201609080den.htm

当我查看页面的源代码时,表格都被注释掉了(我怀疑是为什么readHTMLTable没有找到它们).

示例:在源代码中搜索"team_stats"...

    <!--  
    <div class="table_outer_container">
    <div class="overthrow table_container" id="div_team_stats">
    <table class="stats_table" id="team_stats" data-cols-to-  freeze=1><caption>Team Stats Table</caption>
Run Code Online (Sandbox Code Playgroud)

问题:

如何在源中注释掉表,并在浏览器中显示?

有没有办法使用readHTMLTable(或其他一些方法)读取注释掉的表?

html r html-parsing

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

如何让这个R代码更优雅?

我正在解决R练习,但我认为我可以使这个代码更优雅或更简单.我正在使用ggplot2中的钻石数据集.我必须从数字变量中删除异常值,并且异常值对我来说是一行,其中任何数值变量高于或低于中位数+/- 3倍MAD(中位数绝对偏差).我的实际代码是非常手动的:

library(dplyr)

filter(numeric.vars, 
    carat > median(carat) - 3 * mad(carat),
    carat < median(carat) + 3 * mad(carat),
    depth > median(depth) - 3 * mad(depth),
    depth < median(depth) + 3 * mad(depth),
    table > median(table) - 3 * mad(table),
    table < median(table) + 3 * mad(table),
    price > median(price) -3 * mad(price),
    price < median(price) +3 * mad(price),
    x > median(x) - 3 * mad(x),
    x < median(x) + 3 * mad(x),
    y > median(y) - 3 * mad(y),
    y …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

使用带有日期的mutate可以得到数值

我使用lubridatedplyr包来处理日期变量并分别创建一个新的日期变量.

library(lubridate)
library(dplyr)
Run Code Online (Sandbox Code Playgroud)

df我的数据帧.我有两个变量date1date2.我想创建一个新变量date,使其取值date1.如果date1缺少,date2则取代值.

df <- data.frame(date1 = c("24/01/2016",NA,"22/07/2016"),
                 date2 = c("31/01/2016","09/02/2017",NA),
                 stringsAsFactors=FALSE)`
Run Code Online (Sandbox Code Playgroud)

上面的命令给出:

       date1      date2
1 24/01/2016 31/01/2016
2       <NA> 09/02/2017
3 22/07/2016       <NA>
Run Code Online (Sandbox Code Playgroud)

我尝试了以下,我认为可以给我所需的结果.但是,新date变量在数字中.

df %>% 
   mutate_at(vars(date1,date2),dmy) %>% 
   mutate(date=ifelse(is.na(date1),date2,date1))

       date1      date2  date
1 2016-01-24 2016-01-31 16824
2       <NA> 2017-02-09 17206
3 2016-07-22       <NA> 17004
Run Code Online (Sandbox Code Playgroud)

我想要:

       date1      date2       date
1 2016-01-24 2016-01-31 2016-01-24
2       <NA> 2017-02-09 2017-02-09
3 2016-07-22 …
Run Code Online (Sandbox Code Playgroud)

r date lubridate dplyr

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

如何使用group_by变量作为dplyr的排除值?

假设我有以下数据框:

(dat  = data_frame(v1 = c(rep("a", 3), rep("b", 3), rep("c", 4)), v2 = 1:10))
# A tibble: 10 × 2
#       v1    v2
#    <chr> <int>
# 1      a     1
# 2      a     2
# 3      a     3
# 4      b     4
# 5      b     5
# 6      b     6
# 7      c     7
# 8      c     8
# 9      c     9
# 10     c    10
Run Code Online (Sandbox Code Playgroud)

我希望能够做的是计算每个组(即"A","B"和"C")等于之和的总和v2,其中v1不相等的分组值.所以看起来应该是这样的:

# A tibble: 3 × 2
# …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

Boxplot与ggplot2

我正在研究一个带有预测和观测的箱线图,这是一个非常长的数据集.我在这里提供样本格式.

> forecasts <- data.frame(f_type = c(rep("A", 9), rep("B", 9)), 
                          Date = c(rep(as.Date("2007-01-31"),3), rep(as.Date("2007-02-28"), 3), rep(as.Date("2007-03-31"), 3), rep(as.Date("2007-01-31"), 3), rep(as.Date("2007-02-28"), 3), rep(as.Date("2007-03-31"), 3)), 
                          value = c(10, 50, 60, 05, 90, 20, 30, 46, 39, 69, 82, 48, 65, 99, 75, 15 ,49, 27))
> 
> observation <- data.frame(Dt = c(as.Date("2007-01-31"), as.Date("2007-02-28"), as.Date("2007-03-31")), 
                            obs = c(30,49,57))
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有:

ggplot() + 
    geom_boxplot(data = forecasts,
                 aes(x = as.factor(Date), y = value, 
                     group = interaction(Date, f_type), fill = f_type)) +  
    geom_line(data = observations,
              aes(x = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 boxplot

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

如何组合R中相同数据帧的不同字符列

我在R中有一个数据框如下:

D = data.frame(countrycode = c(2, 2, 2, 3, 3, 3), 
           year = c(1980, 1991, 2013, 1980, 1991, 2013), 
           hello = c("A", "B", "C", "D", "E", "F"), 
           world = c("Z", "Y", "X", "NA", "Q", "NA"), 
           foo = c("Yes", "No", "NA", "NA", "Yes", "NA"))
Run Code Online (Sandbox Code Playgroud)

我想要列hello,worldfoo合并在一个列中,索引为countrycodeyear,如下所示:

output<-data.frame(countrycode=c(2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3),
    year=c(1980,1980,1980,1991,1991,1991,2013,2013,2013,1980,1980,1980,1991,1991,1991,2013,2013,2013),
    Combined=c("A","Z","Yes","B","Y","No","C","X","NA","D","NA","NA","E","Q","Yes","F","NA","NA"))
Run Code Online (Sandbox Code Playgroud)

我都一直cbind从标准R和gathertidyr包装,既不似乎工作.

r

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

如何使用`while`循环附加到向量?

我想使用循环制作矢量。

这是我的R代码:

vec_teamCodes <- c()
x <- 0
while (x < 10) {
  append(vec_teamCodes,"Hello")
  x <- x+1
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,vec_teamCodes()仍然存在NULL

为什么?如何修复我的代码?

r vector while-loop

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

从列表转换为r中的数据帧

我需要从列表中挖掘出类似的数据帧并将它们放入数据帧中.我创建了一个玩具示例:

nn <- list()
h <- data.frame(a = c(5,6), j = c(8,1), g = c("d","o"))
rnz <- c("test1","test2")
o <- data.frame(a = c(1,2), j = c(6,4), g = c("r","u"))
rownames(h) <- rnz
rownames(o) <- rnz
i <- 1:4
nn$set1 <- list(num = i, df = h)
nn$set2 <- list(num = i / 2, df = o)
Run Code Online (Sandbox Code Playgroud)

现在我想将列表提取为以下整齐的格式

       var a j
set1 test1 5 8
set1 test2 6 1
set2 test1 1 6
set2 test2 2 4
Run Code Online (Sandbox Code Playgroud)

但是 - 当我这样做的时候

df …
Run Code Online (Sandbox Code Playgroud)

r list dataframe

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

复制相同的data.frame n次并将它们保存到列表中

我只需要复制我的data.frame n次(例如100)并将所有输出保存到列表中.

它应该是非常简单和直接的,但我还没有找到任何解决方案.

假数据框:

df = read.table(text = 'a b
1 2
5 6
4 4
11 78
23 99', header = TRUE)
Run Code Online (Sandbox Code Playgroud)

r list replicate dataframe

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