R 如何将数据帧转换为箱线图可读的格式?
此表显示了四种不同的文本,以及每种文本的一组样本(处理时间以秒为单位)。我有一些包含此类信息的大型数据表(每个文本有数百个样本)。我将这个表加载到数据框df中 我的意图是用四个框来表示这一点,每个框对应一个文本。我可以很容易地表示一个方框,包括:R 如何将数据帧转换为箱线图可读的格式?,r,ggplot2,boxplot,R,Ggplot2,Boxplot,此表显示了四种不同的文本,以及每种文本的一组样本(处理时间以秒为单位)。我有一些包含此类信息的大型数据表(每个文本有数百个样本)。我将这个表加载到数据框df中 我的意图是用四个框来表示这一点,每个框对应一个文本。我可以很容易地表示一个方框,包括: TEXT1 TEXT2 TEXT3 TEXT4 sample1 38 53 337 3995 sample2 54 81 532 4801 sample3 74
TEXT1 TEXT2 TEXT3 TEXT4
sample1 38 53 337 3995
sample2 54 81 532 4801
sample3 74 108 750 4921
sample4 103 155 1113 4923
或者,将TEXT1替换为其值:
ggplot(data=df,aes(x="T1",y=TEXT1)) + geom_boxplot()
但我无法绘制所有四个方框,我已经尝试过了(不介意x比例的值):
但是它说参数有不同的行数
看看其他的例子,我认为如果我重塑我的数据框,使我只有两列,每行有一对TEXTX | sample,那么我可以将第一列指定给x坐标,第二列指定给y坐标,它应该会产生我想要的结果
但我认为这不是一个简单的方法。有什么帮助吗
谢谢。如果添加示例列并将其用作id变量,则非常简单:
ggplot(data=df,aes(x=1:4,y=df[1:4,2:5])) + geom_boxplot()
您可以使用Reforme2软件包中的
melt
功能轻松地进行重塑,该软件包与ggplot2由同一作者编写。谢谢,我会看一下的!谢谢你的快速回复。我终于做到了:新数据
ggplot(data=df,aes(x=1:4,y=df[1:4,2:5])) + geom_boxplot()
df$sample<-rownames(df)
require(reshape2)
df2 = melt(df, id.vars="sample" )
# 1 sample1 TEXT1 38
# 2 sample2 TEXT1 54
# 3 sample3 TEXT1 74
# 4 sample4 TEXT1 103
# 5 sample1 TEXT2 53
# 6 sample2 TEXT2 81
# 7 sample3 TEXT2 108
# 8 sample4 TEXT2 155
# 9 sample1 TEXT3 337
# 10 sample2 TEXT3 532
# 11 sample3 TEXT3 750
# 12 sample4 TEXT3 1113
# 13 sample1 TEXT4 3995
# 14 sample2 TEXT4 4801
# 15 sample3 TEXT4 4921
# 16 sample4 TEXT4 4923
ggplot(df2,aes(x=sample,y=value)) + geom_boxplot()