用R中的线条按组绘制多个数据集
我有点惊讶,我找不到解决这个问题的办法,但我已经尝试了我认为可能适用的每一个搜索词。然而,我可能没有使用正确的搜索词,所以请原谅我,如果这是重复的,请告诉我正确的方向。我有按样本分组的数据,每个样本对于每个类别都有一个值,其中有很多。下面是一个示例数据帧(请注意,样本数和类别数通常不同):用R中的线条按组绘制多个数据集,r,ggplot2,R,Ggplot2,我有点惊讶,我找不到解决这个问题的办法,但我已经尝试了我认为可能适用的每一个搜索词。然而,我可能没有使用正确的搜索词,所以请原谅我,如果这是重复的,请告诉我正确的方向。我有按样本分组的数据,每个样本对于每个类别都有一个值,其中有很多。下面是一个示例数据帧(请注意,样本数和类别数通常不同): df函数melt来自reformae2包,将数据转换为长格式。它将一组列堆叠成一列。您可能需要定义id变量,该变量在调用函数后将保持不变 如果在没有参数的情况下调用,melt将假定因子和字符变量是id变量,并
df函数melt
来自reformae2
包,将数据转换为长格式。它将一组列堆叠成一列。您可能需要定义id变量,该变量在调用函数后将保持不变
如果在没有参数的情况下调用,melt
将假定因子和字符变量是id变量,并测量所有其他变量。此外,它还提供默认列名:“变量”和“值”。结果,旧列名是新列“variable”下的行
对于您的问题,您可以使用以下代码,指定id_变量,并指定更多信息性的列名(结构保持不变):
df2-df2
样本类别值
1一类2
2两个cat_1 4
3三类1-6
4四类1 2
5一类2 1
6两类2
7三类2
8四类2 1
9一类3 5
10两个cat_3-5
11三类3 7
12四类3 2
ggplot(df2,aes(x=类别,y=值,组=样本,列=样本))+
geom_线()
产生以下情节
请告诉我这是否是您想要的。非常感谢,这正是我想要的。使用melt
的说明非常有用。我的问题是定义什么是变量,什么是类别。我很乐意。我很高兴能帮上忙。您可以找到有关重新构造数据的极好解释:。
df <- data.frame( sample = c( "one", "two", "three", "four" ),
cat_1 = c( 2, 4, -6, 2 ), cat_2 = c( 1, 2, 2, 1 ),
cat_3 = c( 5, -5, 7, 2 ) )
library(reshape2)
> melt(df)
Using sample as id variables
sample variable value
1 one cat_1 2
2 two cat_1 4
3 three cat_1 -6
4 four cat_1 2
5 one cat_2 1
6 two cat_2 2
7 three cat_2 2
8 four cat_2 1
9 one cat_3 5
10 two cat_3 -5
11 three cat_3 7
12 four cat_3 2
df2 <- melt(df, id_vars = sample, variable.name = "category", value.name = "value")
> df2
sample category value
1 one cat_1 2
2 two cat_1 4
3 three cat_1 -6
4 four cat_1 2
5 one cat_2 1
6 two cat_2 2
7 three cat_2 2
8 four cat_2 1
9 one cat_3 5
10 two cat_3 -5
11 three cat_3 7
12 four cat_3 2
ggplot(df2, aes( x=category, y=value, group=sample, col=sample)) +
geom_line()