R:来自tsv文件的长度不同的列的boxplot

时间:2017-04-28 14:59:04

标签: r boxplot

我试图为来自tsv文件的不同长度的列生成不同的箱图。

输入格式:

exons_1    exons_2    exons_3
0          2          2
1          1          2
2          3          1
0          0          
2          2
1
4

然后,我的脚本是:

input_file = read.table(input.tsv, header=TRUE, fill=TRUE)

boxplot((input_file), ylab="Signal", xlab="Exon-Sets", las=2, names = c("exons_1", "exons_2", "exonset_3"))

我获得的输出箱图仅限于第2行(最短列),而忽略第二行之后的值。

如果我将脚本更改为fill = FALSE,我会收到如下消息错误:

Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  :
line 4 did not have 3 elements
Calls: read.table -> scan
Execution halted

任何人都可以帮我绘制不同箱图上所有列的所有值吗?

1 个答案:

答案 0 :(得分:1)

也许您可以在读取数据后重新整形数据,以便一列保存信号的记录值,另一列保存它所属的外显子组。然后,你可以很容易地绘制它。


library(tidyr)
library(ggplot2)
read.table(text = "exons_1    exons_2    exons_3
0          2          2
1          1          2
2          3          1
0          0          
2          2
1
4", fill = T, header = T) %>%
  gather(exon_set, signal) %>%
  drop_na() %>% 
  ggplot(aes(exon_set, signal)) + 
  geom_boxplot()