1

複数のシリーズを持つデータフレームがあり、ggplot2 でそれらのいくつかだけをプロットしたいと思います。ggplot 2 でこれを簡単に行う方法を知っていますか?

tdat=structure(list(uL = c(6, 4, 2, 1, 0.5, 25, 20, 15, 6, 4, 2, 1, 
0.5, 6, 4, 2, 1, 0.5, 25, 20, 15, 10, 25, 20, 15, 10, 5, 1), 
Intensity = c(29355, 36034, 42571, 62325, 79505, 25190, 19721.5, 
13144.5, 40385.5, 40507.5, 46156, 73707, 93496.75, 46940.75, 
45588, 56215, 81908.5, 85508, 93243.5, 79260, 59858.5, 31522.5, 
81629.4, 45928.5, 37694.5, 39466, 45914, 87105), sample = structure(c(3L, 
3L, 3L, 3L, 3L, 1L, 1L, 1L, 4L, 4L, 4L, 4L, 4L, 2L, 2L, 2L, 
2L, 2L, 6L, 6L, 6L, 6L, 5L, 5L, 5L, 5L, 5L, 5L), .Label = c("MCH Mild", 
"PCAM MCH HIGH1", "PCAM MCH LOW-atp,E1E2,UbK48", "PCAM MCH LOW1", 
"PCAM MCH LOW2", "RIPA MCH"), class = "factor")), .Names = c("uL", 
"Intensity", "sample"), class = "data.frame", row.names = c(NA, 
-28L))

head(tdat)
    uL Intensity                      sample
1  6.0     29355 PCAM MCH LOW-atp,E1E2,UbK48
2  4.0     36034 PCAM MCH LOW-atp,E1E2,UbK48
3  2.0     42571 PCAM MCH LOW-atp,E1E2,UbK48
4  1.0     62325 PCAM MCH LOW-atp,E1E2,UbK48
5  0.5     79505 PCAM MCH LOW-atp,E1E2,UbK48
6 25.0     25190                    MCH Mild

を使用してこれをプロットできます:

p <- ggplot(tdat, aes(uL, Intensity)) + geom_point(aes(colour = sample,shape=sample), size=5) + geom_smooth(level=0);p

ここに画像の説明を入力

しかし、私はそのように3つのシリーズだけをプロットしたいと思います:

tdat=tdat[grepl("(PCAM MCH LOW1|PCAM MCH LOW-atp,E1E2,UbK48|PCAM MCH HIGH1)",tdat$sample),]
p <- ggplot(tdat, aes(uL, Intensity)) + geom_point(aes(colour = sample,shape=sample), size=5) + geom_smooth(level=0);p

ここに画像の説明を入力

grepl() を使用せずにそれを行う簡単な方法はありますか?

4

1 に答える 1

2

%in%の代わりに関数とサブセットを直接使用できますgrep

tdat[tdat$sample %in% c('PCAM MCH LOW1', ...),]
于 2013-07-02T20:17:32.090 に答える