我刚刚开始了解KnitR以及使用Markdown生成R文档和报告.这看起来非常适合我日常报道我与工作有关的事情.但是,我没有看到的一件事是使用Markdown格式打印数据框和表的简单方法(有点像xtable,但使用Markdown而不是LaTeX或HTML).我知道我可以从xtable中嵌入HTML输出,但我想知道是否有任何基于Markdown的解决方案?
在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) 我想使用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)
这需要在每次我需要指定不同的数据时修改脚本文本.
有人知道如何提供命令行信息吗?
我正在使用包含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中输入一些"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().
我在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) 我觉得有一种非常简单的方法可以做到这一点,但我并不容易找到它......
我正在使用 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 中进行,但如果必须的话,我总是可以使用额外的包。
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) 我正在编写一个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) 有人可以解释一下,我们需要什么!!,!!!或者{{}}需要什么操作员吗rlang?我试图了解更多有关准引用的知识,但没有得到任何结果。
我已经在 Stack 上找到了几篇关于 curly-curly 运算符的帖子,并且了解我们{{在将数据帧的变量(或对象的其他子对象)传递到函数中时使用它。但在阅读了有关引用/取消引用的内容后,我对所有这些运算符及其用法完全感到困惑。
为什么我们需要它,为什么有些函数没有它就无法读取参数,最后,它们实际上是如何工作的?
如果您以最简单的方式给出答案,即使我也能理解(也许有例子?),我将不胜感激。