小编TAR*_*man的帖子

使用KnitR以编程方式在R中创建Markdown表

我刚刚开始了解KnitR以及使用Markdown生成R文档和报告.这看起来非常适合我日常报道我与工作有关的事情.但是,我没有看到的一件事是使用Markdown格式打印数据框和表的简单方法(有点像xtable,但使用Markdown而不是LaTeX或HTML).我知道我可以从xtable中嵌入HTML输出,但我想知道是否有任何基于Markdown的解决方案?

markdown r knitr r-markdown

101
推荐指数
5
解决办法
7万
查看次数

将矢量从二进制文件强制转换为"as.numeric"时保留名称?

在R中,当您将向量从二进制强制转换为数字时,名称将被删除.

有一些可能的解决方案,我之前已经概述过.通过向所有值添加0来依赖隐式转换似乎很危险,并且sapply()为我的操作添加了一个额外的循环(这似乎效率低下).在使用转换向量时,还有其他方法可以保留名称as.numeric吗?

# Set the seed
set.seed(1045)

# Create a small sample vector and give it names
example_vec <- sample(x = c(TRUE,FALSE),size = 10,replace = TRUE)
names(example_vec) <- sample(x = LETTERS,size = 10,replace = FALSE)

example_vec
#     Y     N     M     P     L     J     H     O     F     D 
# FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE 

as.numeric(x = example_vec)
#  [1] 0 1 0 0 1 1 1 1 1 1

example_vec + 0 …
Run Code Online (Sandbox Code Playgroud)

r vector names type-conversion

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

是否可以在RStudio中为R脚本指定命令行参数?

我想使用RStudio来编辑具有命令行参数的R脚本,例如,

my_rscript --dataset mydataset
Run Code Online (Sandbox Code Playgroud)

然后将optiion值读入R变量dataset,例如,使用optparse库.

但是,我无法在RStudio中找到可以提供acommand行的位置,因此我可以使用"Source on save"功能.相反,我必须对程序本身中的所有程序参数进行硬编码:

dataset <- "mydataset"
Run Code Online (Sandbox Code Playgroud)

这需要在每次我需要指定不同的数据时修改脚本文本.

有人知道如何提供命令行信息吗?

r rstudio

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

将相同的因子水平应用于R数据帧中的多个变量

我正在使用包含16个问题的数据集,其中响应集是相同的(是,否,未知或缺失).我正在使用R处理数据,我希望将每个变量转换为一个因子.对于单个变量,我可以使用以下构造:

df <- read.csv("thedata.csv")
df$q1 <- factor(x=df$q1,levels=c(-9,0,1),
                        labels=c("Unknown or Missing","No","Yes))
Run Code Online (Sandbox Code Playgroud)

我想避免输入16次.我可以用a来做for(),但我想知道是否有更清晰,更R的方法来做到这一点.一些样本数据:

structure(list(q1 = c(0, 0, 0, -9, 0), q2 = c(0, 0, 1, 0, 0),
               q3 = c(0, 0, 1, 0, 0), q4 = c(1, 1, 0, 0, 0),
               q5 = c(0, 1, 1, 1, 1), q6 = c(1, 1, 1, 0, 0),
               q7 = c(0, 0, 0, 1, 0), q8 = c(0, 0, 1, 1, 1),
               q9 = c(1, 0, -9, 1, 0), q10 = c(1, 0, …
Run Code Online (Sandbox Code Playgroud)

r

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

使用标准模式在R中生成数字序列

我正在开展一个项目,我需要在R中输入一些"T得分"表.这些表用于将原始测试分数转换为标准值.它们通常遵循特定的模式,但不是简单的模式.例如,一种模式是:

34,36,39,42,44,47,50,52,55,58,60,63,66,68,
71,74,76,79,82,84,87,90,92,95,98,100,103,106
Run Code Online (Sandbox Code Playgroud)

我宁愿使用一个简单的函数来填充它们,而不是手工输入它们.我知道seq()函数可以创建一个简单的seqeuence,如:

R> seq(1,10,2)
[1] 1 3 5 7 9
Run Code Online (Sandbox Code Playgroud)

有没有办法根据特定模式创建更复杂的序列?例如,上述数据可以如下:

c(34,seq(36:106,c(3,3,2)) # The pattern goes 36,39,42,44,47,50,52 (+3,+3,+2)
Run Code Online (Sandbox Code Playgroud)

...但是,这会导致错误.我以为会有一个功能应该这样做,但我所有的Google-fu刚刚把我带回原来的seq().

sequences r

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

在R中写入和读取3D数组

我在R中构建了一个3D数组(尽管名称似乎没有显示):

v.arr <- array(1:18, c(2,3,3), dimnames = c("A", "B", "X",
                          "Y","Z","P","Q","R"))
Run Code Online (Sandbox Code Playgroud)

当它打印到屏幕上时会显示如下:

, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

, , 3

     [,1] [,2] [,3]
[1,]   13   15   17
[2,]   14   16   18
Run Code Online (Sandbox Code Playgroud)

我使用以下方法将其写入文件:

write.table(v.arr, file = “Test Data”)
Run Code Online (Sandbox Code Playgroud)

然后我再读一遍:

test.data <- read.table(“Test Data”)
Run Code Online (Sandbox Code Playgroud)

我明白了

  X1 X2 X3 X4 X5 X6 X7 X8 X9
1  1  3  5  7 …
Run Code Online (Sandbox Code Playgroud)

arrays r file data-structures

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

在保留课程日期的同时将日期格式化为月-年

我觉得有一种非常简单的方法可以做到这一点,但我并不容易找到它......

我正在使用 R 从数据集中提取数据,然后他们通过许多不同的特征对其进行总结。其中之一是安排/发生事件的月份。我们在数据库中有事件的确切日期,如下所示:

person_id    date_visit
1            2012-05-03
2            2012-08-13
3            2012-12-12
...
Run Code Online (Sandbox Code Playgroud)

我想使用该table()函数来生成一个如下所示的汇总表:

Month    Freq
Jan 12   1
Feb 12   2
Mar 12   1
Apr 12   3
...
Run Code Online (Sandbox Code Playgroud)

我的问题是这个。我已经读入数据并用于as.Date()将字符串转换为日期。我可以format.Date()用来获取格式为 Jan 12、Mar 12 等的日期。但是当你使用 时format.Date(),你最终会再次得到字符串。这意味着当你table()向他们申请时,他们会按字母顺序出现(我目前的日期是 8 月 12 日、7 月 12 日、6 月 12 日、3 月 12 日等等)。

我知道在 SAS 中,您可以使用格式来更改日期的外观,同时将其保留为日期(因此您仍然可以对其进行日期运算符)。使用 R 可以做同样的事情吗?

我的计划是通过多个步骤构建一个漂亮的数据框,然后(在确保所有日期都转换为字符串之后,出于兼容性原因)使用xtable()来制作一个漂亮的 LaTeX 输出。

这是我目前的代码。

load("temp.RData")
ds$date_visit <- as.Date(ds$date_visit,format="%Y-%m-%d")
table(format.Date(safebeat_recruiting$date_baseline,format="%b %Y"))
Run Code Online (Sandbox Code Playgroud)

ETA:如果可以的话,我更愿意只在 Base R 中进行,但如果必须的话,我总是可以使用额外的包。

r date

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

使用唯一的RMarkdown标头创建多个图

spineplot在R中使用,我试图创建一系列图表,比较一些潜在的协变量与年龄类别,以便我们可以做一些初步的数据探索.我在R Markdown中编写了这段代码,我使用RStudio将文件编织成HTML输出.但是,我很难通过我的循环生成每个绘图以获得适当的RMarkdown标头.我已经尝试过cat("## my header")生成每个绘图的循环,但由于某种原因它只显示第一个绘图,而不是其余的.它打印出其余部分,但不会被解释为Markdown.

这是我的代码示例:

---
title: "Minimal Working Example"
author: "TARehman"
date: "Wednesday, August 27, 2014"
output:
  html_document:
    toc: yes
---

# Spineplots
```{r mwe, echo=FALSE, results='asis', fig.height=5, fig.width=8, dpi=300}
tempdata <- data.frame(age=c("0-1","0-1","1-3","1-3","3-7","10-15","3-7","7-10"),
                       covA=c("Class 0","Class 1","Class 3","Class 2","Class 4","Class 3","Class 1","Class 2"),
                       covB=c("Class 1","Class 3","Class 2","Class 4","Class 4","Class 1","Class 1","Class 0"),
                       covC=c("Class 3","Class 3","Class 2","Class 3","Class 1","Class 4","Class 4","Class 4"))

temp_covars <- c("covA","covB","covC")

temp_locvec <- c(0.1,0.3,0.5,0.7,0.9)
temp_labvec <- c("0-1","1-3","3-7","7-10","10-15")
temp_colvec <- rainbow(n = 5,start …
Run Code Online (Sandbox Code Playgroud)

plot r rstudio knitr r-markdown

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

基于R中NULL值的闪亮conditionalPanel条件?

我正在编写一个Shiny应用程序,它将查询数据库几次.查询可能需要一些时间,因此我使用它actionButton来允许用户控制它们何时启动.

该应用程序的一般流程是:

  • 用户加载页面,按下按钮以加载数据库中的可用选项.
  • 用户从可用选项中选择一行,然后启动一个需要更长时间的更大查询.
  • 查询完成后,用户将获得很好的可视化和其他类似的东西.

我知道您可以允许用户使用该selection选项从DataTable中选择行,并且我当前正在使用开发构建,以便可以启用单选.我的问题是弄清楚如何隐藏某些条件面板,直到用户做出选择.据我所知,选择的价值存储在input$[data frame name]_rows_selected.但是,在选择值之前,此值为NULL或不存在.

我无法弄清楚如何传递反映内部R逻辑的条件的condition参数conditionalPanel().我在下面写了一个最小的工作示例,它显示了我所指的行为.

library(shiny)
library(DT)

# Create sample data
df_sample_data <- data.frame(name = c("John Smith","Jane Cochran","Belle Ralston","Quincy Darcelio"),
                             color = c("Red","Blue","Red","Green"),
                             age = c(25,52,31,29))

ui <-
    fluidPage(

        titlePanel("The Title!"),

        sidebarPanel(

            h1("Load Data"),
            actionButton("load_data","Load Data"),
            br(),
            conditionalPanel(

                h1("Do Thing"),
                actionButton("do_thing","Do Thing"),
                condition = "input.df_data_rows_selected !== undefined")
            ),

        mainPanel(

            dataTableOutput("df_data"),
            conditionalPanel(

                tableOutput("row_selected"),
                condition = "input.df_data_rows_selected !== undefined")
            )
    )

server <-
    function(input, output) {

        # This …
Run Code Online (Sandbox Code Playgroud)

r shiny dt

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

有什么作用!!R 中的运算符均值

有人可以解释一下,我们需要什么!!!!!或者{{}}需要什么操作员吗rlang?我试图了解更多有关准引用的知识,但没有得到任何结果。

我已经在 Stack 上找到了几篇关于 curly-curly 运算符的帖子,并且了解我们{{在将数据帧的变量(或对象的其他子对象)传递到函数中时使用它。但在阅读了有关引用/取消引用的内容后,我对所有这些运算符及其用法完全感到困惑。

为什么我们需要它,为什么有些函数没有它就无法读取参数,最后,它们实际上是如何工作的?

如果您以最简单的方式给出答案,即使我也能理解(也许有例子?),我将不胜感激。

r quote tidyverse rlang quasiquotes

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