小编Gre*_*gor的帖子

在R代码中使用分号或显式新行有什么区别

我原本以为分号;相当于添加一个明确的新行,例如

x <- 1; y <- 2
Run Code Online (Sandbox Code Playgroud)

是相同的

x <- 1
x <- 2
Run Code Online (Sandbox Code Playgroud)

当然,R文档似乎没有区别于语法上完整的语句:

分号和新行都可用于分隔语句.分号始终表示语句的结尾,而新行可以表示语句的结束.如果当前语句在语法上不完整,则评估者将忽略新行.

但是,我发现至少在Rstudio服务器中,分号的行为与新行不同.例如:

> temp_a ; temp_b <- 1 ; temp_c <- 2
Error: object 'temp_a' not found
> exists("temp_b")
[1] FALSE
> exists("temp_c")
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

相比

> temp_a
Error: object 'temp_a' not found
> temp_b <- 1
> temp_c <- 2
> 
> exists("temp_b")
[1] TRUE
> exists("temp_c")
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

为什么会这样?还有其他问题我应该留意吗?

r

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

ggplot2馅饼和甜甜圈图表在同一个地块上

我想复制这个 在此输入图像描述与R ggplot.我有完全相同的数据:

browsers<-structure(list(browser = structure(c(3L, 3L, 3L, 3L, 2L, 2L, 
2L, 1L, 5L, 5L, 4L), .Label = c("Chrome", "Firefox", "MSIE", 
"Opera", "Safari"), class = "factor"), version = structure(c(5L, 
6L, 7L, 8L, 2L, 3L, 4L, 1L, 10L, 11L, 9L), .Label = c("Chrome 10.0", 
"Firefox 3.5", "Firefox 3.6", "Firefox 4.0", "MSIE 6.0", "MSIE 7.0", 
"MSIE 8.0", "MSIE 9.0", "Opera 11.x", "Safari 4.0", "Safari 5.0"
), class = "factor"), share = c(10.85, 7.35, 33.06, 2.81, 1.58, 
13.12, 5.43, 9.91, 1.42, 4.55, 1.65), …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 pie-chart donut-chart

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

编写data.frames列表以使用lapply分隔CSV文件

这个问题说明了一切 - 我想要一个充满data.frames的列表对象,并将每个data.frame写入一个单独的.csv文件,其中.csv文件的名称对应于列表对象的名称.

这是一个可重现的例子和我迄今为止编写的代码.

df <- data.frame(
    var1 = sample(1:10, 6, replace = TRUE)
    , var2 = sample(LETTERS[1:2], 6, replace = TRUE)
    , theday = c(1,1,2,2,3,3)
)

df.daily <- split(df, df$theday) #Split into separate days

lapply(df.daily, function(x){write.table(x, file = paste(names(x), ".csv", sep = ""), row.names = FALSE, sep = ",")})
Run Code Online (Sandbox Code Playgroud)

这是R吐出的错误消息的顶部

Error: Results must have one or more dimensions.
In addition: Warning messages:
1: In if (file == "") file <- stdout() else if (is.character(file)) { :
  the condition has …
Run Code Online (Sandbox Code Playgroud)

r

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

处理TRUE,FALSE,NA和NaN

这是一个矢量

a <- c(TRUE, FALSE, FALSE, NA, FALSE, TRUE, NA, FALSE, TRUE)
Run Code Online (Sandbox Code Playgroud)

我想要一个简单的函数,TRUE每当有一个TRUE"a"时返回,并且FALSE每次有一个FALSE或一个NA在"a"中.

以下三件事情无效

a == TRUE
identical(TRUE, a)
isTRUE(a)
Run Code Online (Sandbox Code Playgroud)

这是一个解决方案

a[-which(is.na(a))]
Run Code Online (Sandbox Code Playgroud)

但它似乎不是一个简单易行的解决方案

还有其他解决方案吗?

以下是我所知道的一些函数(和运算符):

identical()
isTRUE()
is.na()
na.rm()
&
|
!
Run Code Online (Sandbox Code Playgroud)
  • 有什么其他功能(运营商,技巧,什么的,......),它们处理非常有用TRUE,FALSE,NA,NaN

  • NA和之间有什么区别NaN

  • 是否有其他"顺理成章之事"比TRUE,FALSE,NANaN

非常感谢 !

boolean r logical-operators r-faq na

26
推荐指数
5
解决办法
4万
查看次数

roxygen2没有完全更新描述文件

我正在制作我的第一个包rlandscape,使用Roxygen2并试图遵循普通的Roxygen晕影,因为Roxygen2没有.

插图(第3页)中,我创建了一个名为rlandscape-package.R包含文件的文件.他们说,在小插曲中

每个Roxygen描述块必须后跟一个语句,甚至是描述文件或包代替特定功能的标题材料.roxygen()作为NOOP(空语句)提供,以代替这种情况.

但如果我按照说明块与roxygen()调用package.skeleton产生Error in eval(expr, envir, enclos) : could not find function "roxygen".所以我试着roxygen()完全放弃呼叫以及替换它NA,两者似乎产生相同的结果:package.skeleton()成功地工作(包括rlandscape-package.R作为code_files参数之一),然后我可以roxygenize

> roxygenize("rlandscape", roxygen.dir = "rlandscape")
Updating collate directive in  /Users/Gregor/Dropbox/rlandscape/rlandscape/DESCRIPTION 
Updating namespace directives
Writing plot.landscape.Rd
Writing rland.Rd
Writing rland.gui.Rd
Writing makePoints.Rd
Writing rCluster.Rd
Writing rlandscape-package.Rd
Writing rlandscape.Rd
Run Code Online (Sandbox Code Playgroud)

它似乎成功运行,但DESCRIPTION文件附加了"Collat​​e"字段,但与package.skeleton创建的字段相同.为什么描述文件的其余部分没有更新?

r roxygen2

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

从查找表中更新向量的某些值的规范 tidyverse 方法

我经常需要根据查找表重新编码数据框列中的一些(不是全部!)值。我对我所知道的解决问题的方法并不满意。我希望能够以一种清晰、稳定和高效的方式做到这一点。在我编写自己的函数之前,我想确保我没有复制已经存在的标准。

## Toy example
data = data.frame(
  id = 1:7,
  x = c("A", "A", "B", "C", "D", "AA", ".")
)

lookup = data.frame(
  old = c("A", "D", "."),
  new = c("a", "d", "!")
)

## desired result
#   id  x
# 1  1  a
# 2  2  a
# 3  3  B
# 4  4  C
# 5  5  d
# 6  6 AA
# 7  7  !
Run Code Online (Sandbox Code Playgroud)

我可以通过加入、合并、取消选择来做到这一点,如下所示,但这并不像我想要的那么清楚- 步骤太多。

## This works, but …
Run Code Online (Sandbox Code Playgroud)

r dplyr recode data.table tidyverse

24
推荐指数
6
解决办法
827
查看次数

如何在ggplot轴上不显示所有标签?

我正在尝试使用ggplot2这个来绘制:在此输入图像描述但正如你在x轴上看到的,你无法阅读任何东西......

那么我怎样才能在x轴上显示每10年的值呢?

这是我的命令:

ggplot(prova, aes(x=year, y=mass..g.)) + geom_line(aes(group = 1))

r ggplot2

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

在CRAN提交中放置包装晕影的位置?

Writing R Extensions手册中,我读到了这一点

从R 2.14.0开始,Sweave源的首选位置是源包的子目录vignettes,但为了与早期版本的R兼容,如果不存在vignet,则将在inst/doc中查找晕图源.

但是,当我创建vignettes包源的子目录时,当我运行devtools::check()或者R CMD check我收到警告时Package vignette(s) without corresponding PDF.如果我把小插图(.Rnw和.pdf)放入inst/doc检查完成而没有投诉.我尝试在我的库中查找已安装的打包,但没有看到任何名为的目录vignettes.我还应该使用已弃用的位置吗?

r cran package-development

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

R:具有/不具有替换的排列和组合以及用于不同/非独特项目/多集的排列和组合

在这个主题中,我试图在这里包括所有常见问题及其答案.我希望这对某人有用.

一般问题:如何rn对象生成对象序列?

  • 组合与排列.
  • 有替换和没有替换.
  • 不同的项目与非独特的项目(多重集合).

总共存在这类2^3=8问题.

[更新]

Josh O'Brien认为这8个问题与十二种方式有关.实际上,"不同"的问题以十二种方式包含在内,而"非独特"的问题则不包括在内.无论如何,将这里的8个问题与12倍的方式进行比较是很有趣的.请参阅注释以获取进一步的读数.

combinations r permutation multiset r-faq

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

如何在Rmarkdown/ioslides演示文稿中修复列分隔符

使用目前RStudio(0.98.758)的开发版本,我很高兴我可以创作一个ioslides演示文稿rmarkdown.

这种格式rmarkdown文档介绍了如何进行双列幻灯片,并附带警告:

请注意,内容将在列中流动,因此如果要在一侧显示图像而在另一侧显示文本,则应确保图像具有足够的高度以强制文本到幻灯片的另一侧.

但我似乎无法使图像足够大!文本仍然被推离第一列的底部.在下面的演示文稿中,我想将基本直方图与列中的qplot直方图进行比较,并附有一些注释和代码.我已经为一些相对简短的示例包含了一些基本的解决方案尝试的代码.如果你要编织它,我认为这个问题很明显.(请注意,您需要预览版本的RStudio.)

---
title: "Two Column"
author: "Some guy on Stack Overflow"
date: "Friday, April 04, 2014"
output: ioslides_presentation
---

## Two-Column Attempt {.smaller}

<div class="columns-2">
Base graphics can be quick...

```{r, fig.width = 3, fig.height = 4}
par_opts <- names(par())
    hist(nchar(par_opts),
         breaks = seq(1.5, 9.5, by = 1))
```

But `ggplot2` can be quick too:

```{r, fig.width = 2.5, fig.height = 2.5}
require(ggplot2, quietly = T) …
Run Code Online (Sandbox Code Playgroud)

r rstudio r-markdown

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