Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何将数据帧转换为箱线图可读的格式?_R_Ggplot2_Boxplot - Fatal编程技术网

R 如何将数据帧转换为箱线图可读的格式?

R 如何将数据帧转换为箱线图可读的格式?,r,ggplot2,boxplot,R,Ggplot2,Boxplot,此表显示了四种不同的文本,以及每种文本的一组样本(处理时间以秒为单位)。我有一些包含此类信息的大型数据表(每个文本有数百个样本)。我将这个表加载到数据框df中 我的意图是用四个框来表示这一点,每个框对应一个文本。我可以很容易地表示一个方框,包括: TEXT1 TEXT2 TEXT3 TEXT4 sample1 38 53 337 3995 sample2 54 81 532 4801 sample3 74

此表显示了四种不同的文本,以及每种文本的一组样本(处理时间以秒为单位)。我有一些包含此类信息的大型数据表(每个文本有数百个样本)。我将这个表加载到数据框df中

我的意图是用四个框来表示这一点,每个框对应一个文本。我可以很容易地表示一个方框,包括:

        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()