2017-01-24 4 views
2

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

У меня есть оценки для разных людей в течение заданного периода времени и вы хотите построить линию между годовыми баллами для каждого человека. Данные организованы с каждой строкой, представляющей отдельного человека, а каждый столбец - наблюдаемым значением за определенный год.

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

Я буду работать с до 100000 физические лица

Thanks.

Код:

df=data.frame(runif(10,0,100),runif(10,0,100),runif(10,0,100),runif(10,0,100)) 
df=data.frame(t(df)) 

Years=seq(1,10,1) 

plot(1,type="n",xlab="Year",ylab="Score", xlim=c(1,10), ylim=c(0,100)) 

for(x in 1:4){lines(Years,df[x,])} 
+1

Для петель не «неэффективный» в R, они просто не нужны во многих случаях из-за векторизации. В этом случае я бы использовал тот же код, что и вы. Если вы преобразуете кадр данных в матрицу, вы можете использовать 'matplot', но вам нужно будет настроить настройки по умолчанию и установить' type = 'l''. –

ответ

2

Эффективности не так много рассмотрения при печати, так как замышляют устройства является медленной операцией самого по себе. Вы можете использовать matplot (который использует внутренний цикл). Это в основном более сложная версия вашего кода, завернутая в функцию.

matplot(Years, t(df), xlab="Year", ylab="Score", type = "l") 

resulting plot