我刚刚向 CRAN 提交了一个 R 包。我收到了这条评论:
If there are references describing the methods in your package, please add these in the description field of your DESCRIPTION file in the form
authors (year) <doi:...>
authors (year) <arXiv:...>
authors (year, ISBN:...)
or if those are not available: <https:...>
with no space after 'doi:', 'arXiv:', 'https:' and angle brackets for auto-linking.
(If you want to add a title as well please put it in quotes: "Title")
Run Code Online (Sandbox Code Playgroud)
但我认为该description字段仅限于一个段落,这意味着除了该字段中的单个段落之外,您不能包含其他文本。所以我不确定在描述字段中包含引用的确切格式是什么。我的猜测如下,但此格式返回一条注释,指出描述格式错误。
Description: Text describing the package, …Run Code Online (Sandbox Code Playgroud) 我在ggplot2中创建一个包含a geom_pointrange和a的图geom_line.我看到当我改变geoms的顺序时,要么将点绘制在行的顶部,要么反之亦然.图例还会根据相同的几何排序更改哪个geom在另一个上面绘制.但是,我希望首先绘制线,然后绘制顶部的点范围,在图中本身,与图例中的相反.这可能吗?我非常感谢任何意见.
这是我用来制作图的代码.
md.figd2 <- structure(list(date = c("2013-05-28", "2013-07-11", "2013-09-22",
"2013-05-28", "2013-07-11", "2013-09-22", "2013-05-28", "2013-07-11",
"2013-09-22"), trt = structure(c(3L, 3L, 3L, 1L, 1L, 1L, 2L,
2L, 2L), .Label = c("- Fescue", "- Random", "Control"), class = "factor"),
means = c(1, 0.921865257043089, 0.793438250521971, 1, 0.878305313846414,
0.85698797555687, 1, 0.840679145697309, 0.798547331410388
), mins = c(1, 0.87709562979756, 0.72278951032918, 1, 0.816185624483356,
0.763720265496049, 1, 0.780804129401513, 0.717089626439849
), maxes = c(1, 0.966634884288619, 0.864086990714762, 1,
0.940425003209472, 0.950255685617691, 1, 0.900554161993105,
0.880005036380927)), .Names = c("date", "trt", "means", …Run Code Online (Sandbox Code Playgroud) 我希望gsub并stringr::str_replace_all在下面返回相同的结果,但只gsub返回预期的结果。我正在开发一个课程来演示,str_replace_all所以我想知道为什么它会在这里返回不同的结果。
txt <- ".72 2.51\n2015** 2.45 2.30 2.00 1.44 1.20 1.54 1.84 1.56 1.94 1.47 0.86 1.01\n2016** 1.53 1.75 2.40 2.62 2.35 2.03 1.25 0.52 0.45 0.56 1.88 1.17\n2017** 0.77 0.70 0.74 1.12 0.88 0.79 0.10 0.09 0.32 0.05 0.15 0.50\n2018** 0.70 0"
gsub(".*2017|2018.*", "", txt)
stringr::str_replace_all(txt, ".*2017|2018.*", "")
Run Code Online (Sandbox Code Playgroud)
gsub返回预期的输出(之前和包括2017,之后和包括的所有内容2018都已被删除)。
gsub 的输出(预期)
[1] "** 0.77 0.70 0.74 1.12 0.88 0.79 0.10 0.09 0.32 0.05 0.15 0.50\n"
Run Code Online (Sandbox Code Playgroud)
然而, …
我想创建一个 gt 表,在其中将两列的数值一起显示在一个单元格中,但仅根据其中一个列的值对单元格进行着色。
例如,使用ToothGrowth示例数据,我想将len和dose列放在一个单元格中,但按 的值对单元格背景进行着色dose。
我尝试手动创建一个颜色向量来为len_dose列着色,但这不起作用,因为它似乎将颜色向量重新应用到 的每个不同级别len_dose,而不是dose。我想您可以手动格式化单元格,tab_style()但这似乎效率低下,并且没有为您提供文本颜色变化以最大化与背景对比度的良好功能。我不知道一个有效的方法来做到这一点。
我尝试过的:
library(gt)
library(dplyr)
library(scales)
library(glue)
# Manually map dose to color
dose_colors <- col_numeric(palette = 'Reds', domain = range(ToothGrowth$dose))(ToothGrowth$dose)
ToothGrowth %>%
mutate(len_dose = glue('{len}: ({dose})')) %>%
gt(rowname_col = 'supp') %>%
cols_hide(c(len, dose)) %>%
data_color(len_dose, colors = dose_colors)
Run Code Online (Sandbox Code Playgroud)
输出(不好,因为没有按剂量着色):
我有兴趣在ggplot2中绘制一个包含逗号的自定义表达式,该表达式包含在一个绘图的一个方面上.我知道如何使用新的数据框在单个面上绘制表达式,如下所示:
fakedata <- data.frame(x = 1:10, y=runif(10), grp=gl(2,5))
ggplot(fakedata, aes(x=x,y,y)) + geom_point() + facet_grid(. ~ grp) +
geom_text(data=data.frame(x=5,y=0.5,grp=1,lab='a == 5'), aes(label=lab), parse=TRUE)
Run Code Online (Sandbox Code Playgroud)
我也知道如何使用annotation_custom在多个方面上绘制表达式,它可以容纳带逗号的表达式.但这不可能仅在单个方面进行绘图.
ggplot(fakedata, aes(x=x,y,y)) + geom_point() + facet_grid(. ~ grp) +
annotation_custom(grobTree(textGrob(expression(paste(a == 5, ', ', b == 6)), x=.5, y=.5)))
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何在单个构面上使用逗号对表达式执行操作,因为您无法在数据框中存储先前定义的表达式.如何在单个面上用逗号绘制表达式?
我想加入两个数据框.某些列名称重叠,并且NA其中一个数据框的重叠列中有条目.这是一个简化的例子:
df1 <- data.frame(fruit = c('apples','oranges','bananas','grapes'), var1 = c(1,2,3,4), var2 = c(3,NA,6,NA), stringsAsFactors = FALSE)
df2 <- data.frame(fruit = c('oranges','grapes'), var2=c(5,6), var3=c(7,8), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)
我是否可以使用dplyr连接函数来连接这些数据框并自动确定非NA条目的优先级,以便我得到"var2"列,以便NA在连接的数据框中没有条目?就像现在一样,如果我打电话left_join,它会保留NA条目,如果我调用full_join它会复制行.
我正在使用该reticulate包从 R 调用 Python 脚本。该脚本被调用多次,因此我想在每次调用它时抑制输出到控制台。我调用的脚本是 Python 模块的一部分。它导入logging模块并使用该info()函数打印消息。我想知道是否有一种方法可以抑制该输出打印到 R 控制台,而无需修改底层 Python 脚本。我已经尝试了这两种py_capture_output()方法py_suppress_warnings(),但是这两种方法都不会阻止打印输出。
过去,我曾经R CMD BATCH在 Linux 服务器上从命令行执行 R 代码。我使用的语法是
R CMD BATCH --no-save --no-restore rcode.r output.txt
Run Code Online (Sandbox Code Playgroud)
上面的代码写入控制台输出,output.txt可以在脚本运行时对其进行监视。这也可以吗Rscript?我更愿意使用,Rscript因为我听说它R CMD BATCH已被弃用。
为了澄清我原来的问题,R CMD BATCH将所有控制台输出(包括消息、警告和print()语句)写入output.txt. 相反,Rscript rcode.r > output.txt仅将print()ed 输出写入文本文件,将其他所有内容写入终端。我如何复制R CMD BATCHwith的行为Rscript?
我正在尝试将大量Excel文件导入到R中。令人恼火的是,单元格中的文本是否缩进包含一些信息。下面是一个示例(我很抱歉必须使用屏幕截图),其中条目“Main”和“Secondary”是缩进的,因为它们属于上行中的“空间供暖”类别。缩进的行的左缩进设置为 1,而非缩进的行的左缩进设置为 0。
我从这个问题中看到,getCellStyle在XLConnect包中可能能够提取此信息,但似乎只能用于检索命名单元格样式。即使没有命名样式,是否可以在 R 中提取此信息?
屏幕截图 (20 KB) 中的 Excel 文件可在https://www.eia.gov/conspiration/residential/data/2015/hc/hc1.1.xlsx(美国能源信息管理局的住宅能源消耗调查)中找到)。
是否有一个简洁的 R“单行”或现有函数来反转列表的嵌套顺序?这意味着list[[i]][[j]]输入中的元素将映射到list[[j]][[i]]输出中。
例如,
my_input <- list(list(1,2,3), list('a','b','c'), list('foo','bar','baz'))
desired_output <- list(list(1,'a','foo'), list(2,'b','bar'), list(3,'c','baz'))
Run Code Online (Sandbox Code Playgroud)