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