小编Mai*_*ura的帖子

R中更详细的目录列表?

我写的函数生成一个输出文件.附加功能可以获取该文件的内容(名称具有可以轻松匹配的模式),并执行更多操作.目前可以做以下事情:

function1(...)
# This will generate a file, say output_typea.md
# Then one could process this content further using
function2(input_file = 'output_typea.md')
Run Code Online (Sandbox Code Playgroud)

但是,由于这两个函数是按顺序运行的,我想让用户调用function2(),缺少输入只会读取与之匹配的最新文件dir(pattern = "*_type.md").不幸的是,似乎无法dir()按修改日期对列表进行排序.我需要的是最新的文件匹配文件名模式.有任何想法吗?

r

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

如何将相同长度的列表合并为一个?

假设我有两个列表:

 xx <- as.list(1:3)
 yy <- as.list(LETTERS[1:3])
Run Code Online (Sandbox Code Playgroud)

如何组合这两个元素,使新列表的每个元素都是每个组件列表的相应元素的列表.所以如果我把上面两个结合起来,我应该得到:

> combined_list
[[1]]
[[1]][[1]]
[1] 1

[[1]][[2]]
[1] "a"


[[2]]
[[2]][[1]]
[1] 2

[[2]][[2]]
[1] "b"


[[3]]
[[3]][[1]]
[1] 3

[[3]][[2]]
[1] "c"
Run Code Online (Sandbox Code Playgroud)

如果您可以建议一个解决方案,我想将其扩展到3个或更多.

r list

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

如何在ggplot中为独立图层缩放颜色?

我有一个数据集记录了三栋建筑的能源使用情况.我有一个融化的数据框,可以从钻石集合中模仿:

data <- melt(diamonds[,c('depth','table','cut','color')],id=c('cut','color'))
Run Code Online (Sandbox Code Playgroud)

基本上,我从三个不同的建筑物(7'颜色'因素)每个月('切割')有加热('深度')和冷却('表')数据.我想在每个月的条形图中并排绘制三个建筑物(7'颜色'因子)('cut').

我希望代表冷却('表')或加热('深度')的条形根据建筑物('颜色'因子)改变它们的阴影,同时保持按月分组('切割').这是一种可视化钻石数据的坏方法,但应该适用于建筑物,因为它们的加热和冷却月份通常不会重叠.到目前为止,我有:

p <- ggplot(data,
        aes(color,value,group=cut))
p <- p + geom_bar(stat = 'identity',
              position = 'dodge',
              aes(fill = variable))
print(p)
Run Code Online (Sandbox Code Playgroud)

我尝试使用scale_fill_manual,但无法想到一个有效的策略:

colours <- c('#0000FF', '#0033FF', '#0066FF', '#FF0000', '#FF3300', '#FF6600')

p <- p + scale_fill_manual(values = colours,
                           group = data$variable)
Run Code Online (Sandbox Code Playgroud)

r scale ggplot2

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

使用嵌套列表时如何保留列表名称?

使用plyr's llplyover 的优点lapply是它保留了列表名称.请参阅?llply解释.我喜欢这个功能,但似乎无法在嵌套列表的情况下使其工作.例:

library(plyr) 
m <- as.list(1:2)
names(m) <- c('M1', 'M2')
foo <- list(m, m)
names(foo) <- paste0("R", 1:2)


result <- ldply(foo, function(x){
        ldply(x, function(z) { data.frame(a=z, b= z^2)})
})
> result
  .id a b
1  M1 1 1
2  M2 2 4
3  M1 1 1
4  M2 2 4

# if I don't operate on the inner list, I can preserve the outer list's names
result2 <- ldply(foo, function(x){
     data.frame(a = …
Run Code Online (Sandbox Code Playgroud)

r plyr

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

读取值跨越多行的键值对的最有效方法是什么?

将文本文件(如下面的示例)解析为两列data.frame然后转换为宽格式的最快方法是什么?

FN Thomson Reuters Web of Science™
VR 1.0
PT J
AU Panseri, Sara
   Chiesa, Luca Maria
   Brizzolari, Andrea
   Santaniello, Enzo
   Passero, Elena
   Biondi, Pier Antonio
TI Improved determination of malonaldehyde by high-performance liquid
   chromatography with UV detection as 2,3-diaminonaphthalene derivative
SO JOURNAL OF CHROMATOGRAPHY B-ANALYTICAL TECHNOLOGIES IN THE BIOMEDICAL
   AND LIFE SCIENCES
VL 976
BP 91
EP 95
DI 10.1016/j.jchromb.2014.11.017
PD JAN 22 2015
PY 2015
Run Code Online (Sandbox Code Playgroud)

使用readLines是有问题的,因为多行字段没有键.读取固定宽度表也不起作用.建议?如果不是针对多行问题,可以使用对每个行/记录进行操作的函数轻松完成,如下所示:

x <- "FN Thomson Reuters Web of Science" …
Run Code Online (Sandbox Code Playgroud)

r dataframe

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

如何使用reshape/plyr汇总数据?

我的数据看起来像这样:

                   model                aspect cover contour
1                        flowering ~ 1      2    52    2400
2   flowering ~ 1 + temp + precip:temp      1    52    2390
3        flowering ~ 1 + temp + precip      1    52    2390
4        flowering ~ 1 + temp + precip      1    52    2390
5 flowering ~ 1 + precip + precip:temp      1    52    2400
6 flowering ~ 1 + precip + precip:temp      1    52    2400
Run Code Online (Sandbox Code Playgroud)

此数据集中有40,000行,包含54个唯一模型.

如何获得汇总数据集,显示每个模型在纵横x轮廓x覆盖组合中出现的次数?

r plyr reshape

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

如何将此格式的日期转换为R中的日期类?

我有一个包含数据的电子表格,其日期如下所示:

   Mon Jul 16 15:20:22 +0000 2012
Run Code Online (Sandbox Code Playgroud)

有没有办法将这些转换为R日期(最好是PST)而不使用正则表达式或没有其他方法?我很感激有效地进行这种转换的想法.

r date

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

如何将其他参数传递给函数内生成的ggplot?

我写了许多包,generic情节是一个ggplot2.一个ggplot呼叫,不像其它的R函数调用,是分层这样一个最终可能会以几种方式(通过分离+的迹象)获得剧情看恰到好处.但是,我不希望有人通过我预先定义的选项受到影响,并希望他们能够自定义它而无需从头开始重新编写我的函数.我该如何做到这一点?

使用传统函数,我可以使用three dot运算符传递可选参数.这似乎更难了ggplot.

可重复的例子

f <- function(df) {
 custom_plot <-  ggplot(df, aes(mpg, disp, color = gear)) + 
geom_point(size = 3) +  
theme(panel.background = element_blank(), panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(), panel.border = element_blank(),
        axis.line = element_line(colour = "black"))
        return(custom_plot)
}
Run Code Online (Sandbox Code Playgroud)

生成情节

f(mtcars)
Run Code Online (Sandbox Code Playgroud)

产生这个:

测试图

如何推广此功能,以便某人可以将更多或不同的选项传递给此图(特别是在通用图的情况下)?

如果我的功能被定义为:

f <- function(df, ...)
Run Code Online (Sandbox Code Playgroud)

我如何将这些传递给我ggplot

r ggplot2

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

标签 统计

r ×8

ggplot2 ×2

plyr ×2

dataframe ×1

date ×1

list ×1

reshape ×1

scale ×1