小编Eri*_*ail的帖子

\ Sexpr {} .Rnw文件中的特殊LaTeX字符($,&,%,#等)

它与默认的内联钩子有关,我意识到并且我已经尝试了它(钩子)并且还阅读了这个线程和Yihui 关于钩子页面,但是我无法解决我的问题.我甚至尝试过Sacha Epskamp的这个建议,但在我的情况下它没有做到这一点.

我正在使用\Sexpr并做一些\Sexpr{load("meta.data.saved"); meta.data[1,7]}在我的报告中打印关键字的方法,问题是人们编写这些关键字(我无法控制的人)正在使用特殊的乳胶字符($,&,%,#等. )当它们被传递到我的.tex文件时,我没有\一个糟糕的时间.

我有一个包含此代码的.Rnw文件,

\documentclass{article}
\begin{document}
 Look \Sexpr{foo <- "me&you"; foo} at this.
\end{document}
Run Code Online (Sandbox Code Playgroud)

Thsi创建一个带有非法LaTeX字符的.tex文件.像这样,

<!-- Preamble omitted for this example. -->
\begin{document}
 Look me&you at this.
\end{document}
Run Code Online (Sandbox Code Playgroud)

我有兴趣得到一个看起来像这样的输出,

<!-- Preamble omitted for this example. -->
\begin{document}
 Look me\&you at this.
\end{document}
Run Code Online (Sandbox Code Playgroud)

很抱歉这个简单的问题,但有人可以帮助我,也许其他人,开始如何修改默认的内联挂钩\Sexpr

latex r knitr

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

在`geom_bar`图中设置`geom_hline`的长度

我有一个geom_bar情节,我想设定的长度 geom_hline.

我有这个数据,

set.seed(666)
df <- data.frame(
  date = seq(Sys.Date(), len= 156, by="4 day")[sample(156, 26)],
  IndoorOutdoor = rep(c(-1,1), 13), #Change so there are only 26 rows
  Xmin = sample(90, 26, replace = T),
  Ymin = sample(90, 26, replace = T),
  Zmin = sample(90, 26, replace = T)
)

df$XYZmin <- rowSums(df[,c("Xmin", "Ymin", "Zmin")])*df$IndoorOutdoor
df[,7:9] <- df[,3:5]*df[,2] #Adding the sign to each X/Y/Z
names(df)[7:9] <- paste0(names(df)[3:5],"p") #to differentiate from your X/Y/Z
require(ggplot2)

df.m <- melt(df[,c(1:2,6:9)], measure.vars=c("Xminp", "Yminp", "Zminp")) …
Run Code Online (Sandbox Code Playgroud)

time stack r ggplot2

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

编辑ggplot2,geom ="line"

我有一个我一直在努力的医院的事件线图.

我还没有解决的挑战是,1)排序上的情节线,从而使患者线通过评估-日期排序,2)着色由变量"OpenCASE中"行,最后,3)我想喜欢删除2014年(或其他一些随机日期)案例的排放点(蓝色方块).

任何帮助,将不胜感激?

这是我的样本数据,

library(ggplot2)
library(plyr)

df <- data.frame(
 date = seq(Sys.Date(), len= 156, by="5 day")[sample(156, 78)],
 openCase = rep(0:1, 39),
 patients = factor(rep(1:26, 3), labels = LETTERS)
)

df <- ddply(df, "patients", mutate, visit = order(date))
df$visit <- as.factor(df$visit)
levels(df$visit) <- c("Assessment (1)", "Treatment (2)", "Discharge (3)")

qplot(date, patients, data = df, geom = "line") + 
geom_point(aes(colour = visit), size = 2, shape=0)
Run Code Online (Sandbox Code Playgroud)

我知道我的示例数据并不完美,因为一些评估数据是在治疗之后,一些排放数据在评估数据之前,但是我的基础数据被搞砸了的那部分挑战.

它目前看起来像什么, 草稿客户仪表板

更新2012-04-30 16:30:13 PDT

我的数据是从数据库传递的,看起来像这样,

df <- structure(list(date = structure(c(15965L, 15680L, 16135L, 15730L, 
15920L, 15705L, …
Run Code Online (Sandbox Code Playgroud)

time dashboard r ggplot2

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

R:重命名数据框中的变量子集

我正在重命名数据框中的大多数变量,我的方法并没有给我留下太深刻的印象.

因此,SO上的任何人是否有更智能或更快的方式,而下面仅使用基数?

    data(mtcars)
  # head(mtcars)


  temp.mtcars <- mtcars
  names(temp.mtcars) <- c((x <- c("mpg", "cyl", "disp")), 
                           gsub('^', "baR.", setdiff(names (mtcars),x)))
  str(temp.mtcars)
  'data.frame': 32 obs. of  11 variables:
   $ mpg     : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
   $ cyl     : num  6 6 4 6 8 6 8 4 4 6 ...
   $ disp    : num  160 160 108 258 360 ...
   $ baR.hp  : num  110 110 93 110 175 105 245 62 95 123 …
Run Code Online (Sandbox Code Playgroud)

r rename base gsub

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

colSums()的特殊用途,仅当缺少1个或更少时,na.rm = TRUE

我需要在data.frame中对一些列进行求和,并使用一条规则来说明,如果只有1或更少的缺失要求总和,NA则如果缺少一个以上的观察,则要对一列NA进行求和.

说我有这样的数据,

dfn <- data.frame(
a  = c(3, 3, 0, 3),
b  = c(1, NA, 0, NA),
c  = c(0, 3, NA, 1))

dfn
  a  b  c
1 3  1  0
2 3 NA  3
3 0  0 NA
4 3 NA  1
Run Code Online (Sandbox Code Playgroud)

我应用我的规则,并将少于2的列总和NA.所以我得到这样的东西.

  a  b  c
1 3  1  0
2 3 NA  3
3 0  0 NA
4 3 NA  1
5 9 NA  4
Run Code Online (Sandbox Code Playgroud)

我玩过colSums(dfn, na.rm = FALSE)colSums(dfn, …

if-statement r sum na na.rm

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

在R中格式化电话号码

因此,我列出了没有标准格式的电话号码,因此可以是(123)-456-7890、1234567890、456890、456-7890。

我想浏览一下我的电话号码列表并将其格式设置为123-456-7890 456-7890

到目前为止,我在R中拥有的是

 phone_num <- gsub("-","", gsub("\\(","", gsub("\\)","", csv_file$Phone)))

 if(nchar(phone_num)== 10) {
    cleaned_phone <-gsub("(\\d{3})(\\d{3})(\\d{4}$)", "\\1-\\2-\\3", phone_num) 
  }
    else if (nchar(phone_num) == 7){
             cleaned_phone <-gsub("(\\d{3})(\\d{4}$)", "\\1-\\2", phone_num)
    }
         else (nchar(phone_num) != 7 || nchar(phone_num) != 10){
              cleaned_phone <- #delete entry
         }
Run Code Online (Sandbox Code Playgroud)

但是我遇到了错误-有什么想法吗?

我希望输出的长度为10的电话号码格式为123-456-7890,长度为7的电话号码格式为123-4567。对于无效的条目,应将其删除。

谢谢!!!

if-statement r gsub

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

说明ggplot2密度图中的平均值和标准偏差

我正在尝试构建一个图,其中我绘制了正态分布的变量,显示了它们在x轴上的平均值和y轴上的标准偏差(SD).有点像密度图,但不是在y轴上有密度,我想要SD(值).

我正在处理下面的数据,

set.seed(1)
mu1 <- rnorm(10^5, mean = 1, sd = 1)
mu3 <- rnorm(10^5, mean = 3, sd = 2)
Run Code Online (Sandbox Code Playgroud)

两个正态分布的变量.在这里他们的意思和sd,

# install.packages("tidyverse", dependencies = TRUE)
require(tidyverse)
tibble(mu1, mu3) %>% summarise_all(funs(mean, sd))
#> # A tibble: 1 x 4
#>    mu1_mean mu3_mean    mu1_sd   mu3_sd
#>       <dbl>    <dbl>     <dbl>    <dbl>
#> 1 0.9993454 3.000825 0.9982848 1.998234
Run Code Online (Sandbox Code Playgroud)

我玩过和其他软件包,以便更接近我想要的东西.我也试过从一个盒子图中复制这个函数做类似的事情,但是还成功了.

这是我的开始,

tibble(mu1, mu3) %>% gather() %>% ggplot() + 
  geom_density(aes(x = value, colour = key)) + 
  labs(x = …
Run Code Online (Sandbox Code Playgroud)

r data-visualization ggplot2 kernel-density

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

旋转dplyr的tibble摘要的简单方法

我正在寻找一种简单的方法来旋转tibble摘要.

说我做的是这样的,

# install.packages(c("dplyr"), dependencies = TRUE)
library(dplyr) 

mtcars %>% 
    group_by(am)  %>%
    summarise(
        n = n(),
        Mean_disp = mean(disp),
        Mean_hp = mean(hp),
        Mean_qsec = mean(qsec),
        Mean_drat = mean(drat)
             )
#>     # A tibble: 2 x 6
#>      am     n Mean_disp  Mean_hp Mean_qsec Mean_drat
#>   <dbl> <int>     <dbl>    <dbl>     <dbl>     <dbl>
#> 1     0    19  290.3789 160.2632  18.18316  3.286316
#> 2     1    13  143.5308 126.8462  17.36000  4.050000
Run Code Online (Sandbox Code Playgroud)

但是,我想要的是获得或多或少的输出,

#> # A tibble: 5 x 2
#>    am …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyverse

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

两个字符串上的grep

我正在努力抓住一个字符串中的两个不同元素.

字符串看起来像这样,

str <- c('a_abc', 'b_abc', 'abc', 'z_zxy', 'x_zxy', 'zxy')
Run Code Online (Sandbox Code Playgroud)

我已尝试过不同的选项?grep,但我无法做到正确,做这样的事情,

grep('[_abc]:[_zxy]',str, value = TRUE)
Run Code Online (Sandbox Code Playgroud)

我想要的是,

[1] "a_abc" "b_abc" "z_zxy" "x_zxy"
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

grep r

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

计算矩阵列表

我有一个矩阵列表,例如 list(M1,M2,M3,M4)

我想得到一个矩阵,它添加所有矩阵M1+M2+M3+M4并将每一行除以rowSums(M1)+rowSums(M2)+rowSums(M3)+rowSums(M4).

这是一个示例列表,

lst <- list(M1 = matrix(c(1,4,2,5), 2, 2), M2 = matrix(c(2,6,3,7), 2, 2))
lst
#> $M1
#>      [,1] [,2]
#> [1,]    1    2
#> [2,]    4    5
#> 
#> $M2
#>      [,1] [,2]
#> [1,]    2    3
#> [2,]    6    7
Run Code Online (Sandbox Code Playgroud)

我想要的结果是什么,

(1+2)/((2+1)+(2+3)) = 0.375      (2+3)/((2+1)+(2+3)) = 0.625
(4+6)/((6+7)+(4+5)) = 0.4545455  (5+7)/((6+7)+(4+5)) = 0.5454545
Run Code Online (Sandbox Code Playgroud)

r matrix

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