这是我读入数据帧的数据结构.
treatment egf mean se
10 uM PP2 -697.25 14124.349
10 uM PP2 1 nM EGF 14715.50 8862.012
DMSO 58589.25 7204.824
DMSO 1 nM EGF 87852.00 12149.159
Run Code Online (Sandbox Code Playgroud)
treatment和egf列的组合表示每列的唯一ID.我想创建一个组合这些列的列,以便我可以有一个唯一代表每一行的列.但是,由于EGF列中缺少值,当我使用粘贴时,它会解决这个烦人的问题:
>paste(rawp$treatment, rawp$egf, sep=" + ")
[1] "10 uM PP2 + " "10 uM PP2 + 1 nM EGF" "DMSO + "
[4] "DMSO + 1 nM EGF"
Run Code Online (Sandbox Code Playgroud)
当值丢失时,它仍然会将分隔符放在那里.我想读它:
[1] "10 uM PP2" "10 uM PP2 + 1 nM EGF" "DMSO"
[4] "DMSO + 1 nM EGF"
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我想要这样做的全部原因是因为我想用ggplot绘制数据,而且在指定x轴时似乎只需要1个唯一的列.
ggplot(data=rawp, aes(x=treatment, y=mean)) + …Run Code Online (Sandbox Code Playgroud) 使用 geom_tile,我想在每行数据之间放置一条水平线。看起来如果我在美学上使用颜色,它会在水平和垂直方向上都有线条,这不是我想要的。过去,我只是将图块的高度变小,以便它们之间有一些分离。但是,似乎每行的空间量都不同?为什么会这样,有没有办法让分离始终一样?
library(ggplot2)
gn <- c(rep("gn1", 5), rep("gn2", 5), rep("gn3", 5), rep("gn4", 5), rep("gn5", 5),
rep("gn6", 5), rep("gn7", 5), rep("gn8", 5), rep("gn9", 5), rep("gn10", 5),
rep("gn11", 5), rep("gn12", 5), rep("gn13", 5), rep("gn14", 5), rep("gn15", 5),
rep("gn16", 5), rep("gn17", 5), rep("gn18", 5), rep("gn19", 5))
smpl <- rep(c("smpl1", "smpl2", "smpl3", "smpl4", "smpl5"), 19)
mut1 <- c(0, 2, 3, 3, 0)
mut2 <- c(0, 2, 2, 0, 3)
mut3 <- c(2, 0, 2, 0, 3)
mut4 <- c(0, 0, 2, 2, 3)
mut5 …Run Code Online (Sandbox Code Playgroud)