小编tal*_*lat的帖子

ggplot2 multiple stat_smooth:更改颜色和线型

我无法使用多个更平滑的方式更改当前绘图的颜色和线型(stat_smooth())

这里是数据结构的概述:

     serviceInstanceName            timestamp     value
1    DE1Service-utilityPredicted    2014-02-22    10.000000
2    SE1Service-utilityPredicted    2014-02-22     4.385694
3    DE2Service-utilityPredicted    2014-02-22     0.000000
4    US1Service-utilityPredicted    2014-02-22     2.230000
5    DE1Service-utilityActual       2014-02-22    10.000000
6    SE1Service-utilityActual       2014-02-22     8.011919
7    DE2Service-utilityActual       2014-02-22     3.000000
8    US1Service-utilityActual       2014-02-22     1.325191
...
Run Code Online (Sandbox Code Playgroud)

根据时间戳(y轴)和值(x轴),有八个唯一的服务实例.

这里的代码:

ggplot(rmm, aes(x=timestamp, y=value, color=serviceInstanceName, group=serviceInstanceName)) 
+ stat_smooth(size=1.5, method = "loess", level = 0.95, fullrange = TRUE, se = FALSE)
+ scale_x_datetime(breaks = date_breaks("1 day"), labels = date_format("%a/%m"))
+ theme(axis.text.x = element_text(angle = 90, hjust = 1)) + xlab("Day") …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

使用带行和列名称的fread读取文件

使用fread,如何读取包含行名和列名的CSV文件.我试过跟随,但它没有正确读取行和列名称.

csv文件看起来像(其中C1,C2,C3是列名,r1,r2,r3是行名)

input = ",C1,C2,C3
r1,A,B,C
r2,1,3,5
3,2,4,6"
Run Code Online (Sandbox Code Playgroud)

我用的是功能

require(data.table)
fread(input,header = TRUE)
Run Code Online (Sandbox Code Playgroud)

哪个给

   r1 A B C
1: r2 1 3 5
2:  3 2 4 6
Run Code Online (Sandbox Code Playgroud)

如何使用fread正确读取CSV?

csv r data.table

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

R排序数据子集

我正在学习使用R(版本3.1.2),所以这可能是一个noob问题,但我在订购数据框的子集时遇到了问题.如果我使用mtcars数据框attach(mtcars),我可以轻松地使用它ord.cars <- mtcars[order(hp),].问题是,如果我使用子集,让我们说sub.cars <- subset(mtcars, hp > 120)并尝试使用它ord.sub <- sub.cars[order(mpg),],结果如下:

                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
NA                    NA  NA    NA  NA   NA    NA    NA NA NA   NA   NA
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
NA.1                  NA  NA    NA  NA   NA    NA    NA NA NA   NA   NA
NA.2                  NA  NA    NA  NA   NA    NA    NA NA NA   NA   NA
NA.3                  NA …
Run Code Online (Sandbox Code Playgroud)

sorting r subset dataframe

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

R根据多个条件获取行 - 使用dplyr和reshape2

df <- data.frame(
    exp=c(1,1,2,2),
  name=c("gene1", "gene2", "gene1", "gene2"),
    value=c(1,1,3,-1)
    )
Run Code Online (Sandbox Code Playgroud)

在尝试获得定制时dplyr,reshape2我偶然发现了一种基于几种条件选择行的"简单"方法.如果我想在实验1(== 1)name中具有value高于0的那些基因(变量)并且在实验2中exp同时value低于0; 在df中,这将是"gene2".当然必须有很多方法,例如每组条件的子集df(exp == 1&value> 0,exp == 2和value <0),然后加入这些子集的结果:

library(dplyr)    
inner_join(filter(df,exp == 1 & value > 0),filter(df,exp == 2 & value < 0), by= c("name"="name"))[[1]]
Run Code Online (Sandbox Code Playgroud)

虽然这个作品看起来非常akward的,我觉得这样的条件筛选在于在的心脏reshape2dplyr,但无法弄清楚如何做到这一点.有人可以在这里启发我吗?

conditional filtering r reshape2 dplyr

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

在ggplot2中有一种方法可以检索用于在R中创建绘图的命令吗?

如果我使用此命令创建绘图:

bp <- ggplot(PlantGrowth, aes(x=group, y=weight)) + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)

有没有办法从bp中获取那些ggplot2命令?我正在使用一个cummeRbund使用ggplot2绘制输出的package(),因此生成绘图的命令将被包含在一个命令中,该命令模糊了绘图的生成方式.我想修改情节,并想看看它是如何生成的 -

ic<-csCluster(myGenes,k=7)

icp7(csClusterPlot(ic))
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

6
推荐指数
0
解决办法
76
查看次数

将嵌套文件夹和文件名作为嵌套列表读取

我正在尝试将已定义目录的所有文件夹和文件名读入嵌套列表,该列表将与顶层文件夹的数量一样长,然后每个列表元素具有与子目录中相同的元素(如果它是一个文件夹)等等,直到只有文件而没有更多文件夹的级别.

我的用例是我的iTunes Music文件夹:

m <- "/Users/User/Music/iTunes/iTunes Media/Music"  # set the path to the library folder
x <- list.files(m, recursive = FALSE)               # get all artists names (folder names on top level)
# read all Albums and title of each song per album
lst <- setNames(lapply(paste(m, x, sep = "/"), list.files, recursive = T), x)  
Run Code Online (Sandbox Code Playgroud)

lst现在每个元素的结构如下:

#$`The Kooks`                                       # artist name "The Kooks"
# [1] "Inside In Inside Out/01 Seaside.mp3"         # album name "Inside In Inside Out", title "01 Seaside.mp3" …
Run Code Online (Sandbox Code Playgroud)

r

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

用户使用dplyr折叠行

我想基于用户折叠行,同时将'1'放在相应的列上.

每个用户的每行只能有一个'1',因此不需要添加任何后续行.

我的df:

User  +1  +2  +3  +4  +5
   A   1   0   0   0   0
   A   0   1   0   0   0
   A   0   0   0   0   1
   B   0   0   1   0   0 
   B   0   0   0   1   0
Run Code Online (Sandbox Code Playgroud)

预期结果:

User  +1  +2  +3  +4  +5
   A   1   1   0   0   1
   B   0   0   1   1   0 
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

r dplyr

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

在plyr或dplyr中调试 - 查看哪个组

当我使用plyr和dplyr来分析按id分组的大数据集时,我有时会在函数中出错.我可以使用browser()或debugger()来探索发生了什么,但有一个问题是我不知道问题是第一个id还是第100个.我可以使用调试器让我停止错误,但有一个简单的方法来查看id导致问题除了只包括id作为函数输入以进行调试的唯一目的?我用下面的例子说明.

meanerr = function(y) {
  m = mean(y)
  stopifnot(!is.na(m))
  return(m)
}

d = data.frame(id=c(1,1,1,1,2,2),y=c(1,2,3,4,5,NA))
dsumm = ddply(d,"id",summarise,mean=meanerr(y))
Run Code Online (Sandbox Code Playgroud)

当然这会导致下面的错误,当我深入到转储时,我只需要知道在哪里看(见下文)

> options(error=dump.frames)
> source('~/svn/pgm/test_debug_ddply.R')
Error: !is.na(m) is not TRUE
> debugger()
Message:  Error: !is.na(m) is not TRUE
Available environments had calls:
1: source("~/svn/pgm/test_debug_ddply.R")
2: withVisible(eval(ei, envir))
3: eval(ei, envir)
4: eval(expr, envir, enclos)
5: test_debug_ddply.R#9: ddply(d, "id", summarise, mean = meanerr(y))
6: ldply(.data = pieces, .fun = .fun, ..., .progress = .progress, .inform = .inform, .parallel = .
7: llply(.data = .data, …
Run Code Online (Sandbox Code Playgroud)

debugging r plyr dplyr

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

R将因子ID变量转换为数字ID变量

我对R有一个编程疑问,我不知道如何在花费数小时查看互联网和Stack Overflow上的潜在响应之后解决它.

我在data.frame的列中有一个因子变量,如下所示:

Columnname
agsgssg
agsgssg
agsgssg
adgatata
ahagha
ahagha
ahagha
ahagha
aghaatah
ghssghs
ghssghs
ghssghs
Run Code Online (Sandbox Code Playgroud)

因子变量不能直接转换为带有as.numeric(as.character())的数字,因为每个级别都是一个字符串,而不是一个数字.

我需要的是

Columnname            Numericcolumnname
agsgssg                        1
agsgssg                        1
agsgssg                        1
adgatata                       2
ahagha                         3   
ahagha                         3  
ahagha                         3   
ahagha                         3  
aghaatah                       4  
ghssghs                        5
ghssghs                        5   
ghssghs                        5  
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几种方法,包括使用levels()作为因子变量,使用freq()作为因子变量,试图找出每个级别有多少行,然后为每个级别的因子做几个"因为"循环没有成功.

我觉得它应该有一个非常简单的解决方案,我只是没有搞清楚.

谢谢您的考虑

r

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

用于 !(或任何逻辑运算符)%>%(magrittr)会产生意外输出

我遇到过这样一种情况,%>%当结合使用时产生非常惊人的输出!.请考虑以下代码:

x <- c(1:20)
y <- !is.na(x)

> y
 [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE 
     TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

> sum(Y)
[1] 20
Run Code Online (Sandbox Code Playgroud)

好的,没什么好惊的.但如果我尝试使用%>%奇怪的东西来缩短它:

!is.na(x) %>% sum

[1] TRUE
Run Code Online (Sandbox Code Playgroud)

TRUE?? 不是我的预期 - 它应该是20.

如果我删除!它给我0按预期:

> is.na(x) %>% sum
[1] 0
Run Code Online (Sandbox Code Playgroud)

如果我添加括号,它的工作原理:

> {!is.na(x)} %>% sum
[1] 20
Run Code Online (Sandbox Code Playgroud)

!作为一个功能处理工作:

> is.na(x) %>% `!` %>% sum
[1] …
Run Code Online (Sandbox Code Playgroud)

r magrittr

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