我无法使用多个更平滑的方式更改当前绘图的颜色和线型(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) 使用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?
我正在学习使用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) 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的,我觉得这样的条件筛选在于在的心脏reshape2和dplyr,但无法弄清楚如何做到这一点.有人可以在这里启发我吗?
如果我使用此命令创建绘图:
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) 我正在尝试将已定义目录的所有文件夹和文件名读入嵌套列表,该列表将与顶层文件夹的数量一样长,然后每个列表元素具有与子目录中相同的元素(如果它是一个文件夹)等等,直到只有文件而没有更多文件夹的级别.
我的用例是我的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) 我想基于用户折叠行,同时将'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)
任何帮助,将不胜感激.
当我使用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) 我对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()作为因子变量,试图找出每个级别有多少行,然后为每个级别的因子做几个"因为"循环没有成功.
我觉得它应该有一个非常简单的解决方案,我只是没有搞清楚.
谢谢您的考虑
我遇到过这样一种情况,%>%当结合使用时产生非常惊人的输出!.请考虑以下代码:
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)