2013-05-24 2 views
0

У меня есть следующий данные:Multiple заговора группы одной функции

Animal MY Age 
1 17.03672067 1 
1 17.00833641 2 
1 16.97995215 3 
1 16.95156788 4 
1 16.92318362 5 
1 16.88157748 6 
2 16.83997133 2 
2 16.79836519 3 
2 16.75675905 4 
2 16.7151529 5 
2 16.67354676 6 
2 16.63194062 7 
3 16.59033447 1 
3 16.54872833 2 
3 16.50712219 3 
3 16.46551604 4 
3 16.4239099 5 
3 16.38230376 6 
4 16.34069761 1 
4 16.29909147 2 
4 16.25748533 3 
4 16.21587918 4 
4 16.17427304 5 
4 16.1326669 6 

Я хочу, чтобы построить график рассеяния между моим против возраста для каждого животного. Я использую эту функцию

plot(memo$MY[memo$Animal=="1223100747"]~memo$Age[memo$Animal=="1223100747"]). 

Если теперь я хочу, чтобы добавить тот же сюжет (MY против Возраст) еще животных, мне просто нужно использовать функцию: lines. Однако, поскольку у меня около 200 животных, я не хочу делать это вручную 100 раз. Мои вопросы в том, что: Как я могу построить эти различные животные одной функцией ?, вместо использования lines, lines .... lines)

С уважением, Фыонг

ответ

0

Вы можете использовать by, например:

by(memo,memo$Animal,FUN=function(x) plot(x$MY~x$Age)) 
+0

hi agstudy: мои данные содержат недостающее значение. Как я могу указать это, используя ваше предложение? Другой вопрос: возможно ли классифицировать животное другим фактором, таким как этап, то есть каждое животное имеет стадию 1,2,3. Так что я хочу рисовать животных на 1-й стадии, затем на этапе 2, затем в категории 3? Благодаря! –

0

Вы можете использовать петлю или матрицу, если хотите использовать базу R, но я советую вам использовать пакет ggplot2.

DF <- read.table(text="Animal MY Age 
1 17.03672067 1 
1 17.00833641 2 
1 16.97995215 3 
1 16.95156788 4 
1 16.92318362 5 
1 16.88157748 6 
2 16.83997133 2 
2 16.79836519 3 
2 16.75675905 4 
2 16.7151529 5 
2 16.67354676 6 
2 16.63194062 7 
3 16.59033447 1 
3 16.54872833 2 
3 16.50712219 3 
3 16.46551604 4 
3 16.4239099 5 
3 16.38230376 6 
4 16.34069761 1 
4 16.29909147 2 
4 16.25748533 3 
4 16.21587918 4 
4 16.17427304 5 
4 16.1326669 6",header=TRUE) 

library(ggplot2) 
DF$Animal <- factor(DF$Animal) 

p1 <- ggplot(DF,aes(x=MY,y=Age,colour=Animal)) + geom_line() 
print(p1) 
+0

привет Роланд, я попробовал ваше предложение с ggplot2. Он работает отлично, как я ожидал. Однако, если я сейчас хочу выбрать только животных на 1-й стадии для построения. Это означает, что у меня есть другие факторы, которые являются «этапом = 1,2,3» для контроля. Как я могу это указать? –

+0

Ну, вы можете подмножить свой data.frame, или вы можете грань сюжета, что, вероятно, вы хотите сделать. Google для «ggplot2 facet». – Roland

+0

привет Роланд. Я использовал данные подмножества. Ну, это пока удовлетворяет меня. Большое спасибо! –

Смежные вопросы