根据列值拆分数据并创建散点图。

时间:2012-09-25 23:53:11

标签: r

我需要为f组(性别= 1)制作days vs age的散点图,并使用R为m组(性别= 2)制作days vs age的另一个散点图。

days  age sex
 306  74   1
 455  67   2
1000  55   1
 505  65   1
 399  54   2
 495  66   2
 ...

如何按性别提取数据?之后我知道使用plot()函数来创建散点图。

谢谢!

2 个答案:

答案 0 :(得分:7)

您可以使用传统的R图形功能执行此操作,例如:

plot(age ~ days, Data[Data$sex == 1, ])
plot(age ~ days, Data[Data$sex == 2, ])

如果您喜欢为点着色而不是将图分开(可能更容易理解),您可以这样做:

plot(age ~ days, Data, col=Data$sex)

然而,使用ggplot2

这种情节会特别容易(并且更好看)
library(ggplot2)
ggplot(Data, aes(x=days, y=age)) + geom_point() + facet_wrap(~sex)

答案 1 :(得分:0)

spread按列值拆分数据。这也称为converting data from "long" to "wide"

我没有测试过这个,但是像

那样
spread(data, sex, age) 

应该找你

days  1    2
 306  74   NA
 455  NA   67   
1000  55   NA
 505  65   NA
 399  NA   54   
 495  NA   66