R графічного списку кадрів даних

У мене є масив даних, всі з тими ж колонами. Я хотів би автоматично відобразити окремий рядок для окремого стовпця для кожного з цих кадрів даних. Щось на зразок:

plot(array[]$time, array[]$data)

це щось подібне до цього, або мені доводиться обводити кожний кадр даних і додавати рядок() для кожного кадру даних?

Редагувати

Прошу вибачення, адже те, що я створив - це список. В основному у мене є дві таблиці, підключення , які перераховують різні відомості про з'єднання TCP:

src | src_port | dst | dst_port

і зонди , які містять дані періодичних даних щодо пакетів і переданих даних:

timestamp | src | src_port | dst | dst_port | packets | bytes

Таким чином, щоб побудувати часові інтервали всіх різних з'єднань, я створив список підмножин кадру даних, наприклад:

connection <- vector(mode='list', length = nrow(connections))
for (row in 1:nrow(connections)){
  connection[[row]] <- subset(probes, src == connections[row, 'src'] & src_port == connections[row, 'src_port'] & dst == connections[row, 'dst'] & dst_port == connections[row, 'dst_port'])
}

Те, що я хочу отримати, полягає в тому, щоб побудувати всі ці підмножини, що мають в осі х часову мітку і в осі y байти, враховуючи різні часові інтервали для кожного з'єднання.

Сподіваюся, що зараз я краще роз'яснити проблему.

0
@Aleh: Ваші знання про R занадто обмежені. Кадри даних є списками, а списки можуть бути індексаційними елементами матриць або масивів.
додано Автор 42-, джерело
@Aleh: Ваші знання про R занадто обмежені. Кадри даних є списками, а списки можуть бути індексаційними елементами матриць або масивів.
додано Автор 42-, джерело
Звертаючись за допомогою, вам слід включити простий приклад відтворення з вхідним та бажаним виходом, які можна використовувати для перевірки та перевірки можливих рішень. У вас дійсно є масив data.frames? або список даних .frames? Вони відрізняються в R. Часто має сенс об'єднати свої дані в єдиний файл data.frame перед тим, як побудувати графік.
додано Автор MrFlick, джерело
Наскільки мені відомо, в Р. не існує такої речі, як масив data.frames. Можливо, ви маєте на увазі список data.frames? У цьому випадку можна використовувати lapply ().
додано Автор Aleh, джерело
@ 42 може бути, будь ласка, надайте приклад цього в коді. Otherwice як сказано ви можете зберігати data.frames у списку та запускаєте lapply() щоб заповнити ділянку.
додано Автор Aleh, джерело
@ 42 може бути, будь ласка, надайте приклад цього в коді. Otherwice як сказано ви можете зберігати data.frames у списку та запускаєте lapply() щоб заповнити ділянку.
додано Автор Aleh, джерело
@ 42 може бути, будь ласка, надайте приклад цього в коді. Otherwice як сказано ви можете зберігати data.frames у списку та запускаєте lapply() щоб заповнити ділянку.
додано Автор Aleh, джерело
@Aleh Мені шкода, я просто редагував додавання більш докладної інформації
додано Автор ale93p, джерело
@Aleh Мені шкода, я просто редагував додавання більш докладної інформації
додано Автор ale93p, джерело
@Aleh Мені шкода, я просто редагував додавання більш докладної інформації
додано Автор ale93p, джерело

5 Відповіді

Ось приклад повторюваного побудови кількох кадрів даних, витягнутих з тривимірного масиву. Зверніть увагу на необхідність використання "[[" для обробки індексів, а також про те, що тип зображення за замовчуванням для ділянки - це точки, а не рядки. Можна змінити це за допомогою type = "l":

dfarray <- array( list(), c(2,3,4))
dfarray[[1,1,1]] <- data.frame(a=2:4, letters[2:4])  # need to use "[["
dfarray[[1,1,2]] <- data.frame(a=2:4, b=8:10)
dfarray[[1,1,3]] <- data.frame(a=2:4, b=10:12)
# Remember to make enough space to hold lines
 png(); plot(b ~a, data=dfarray[[1,1,1]], ylim=c(5,12) ) 
        for( x in 2:3) {lines( b~a, data=dfarray[[1,1,x]], col=x)}
 dev.off()

enter image description here

2
додано
Існує декілька "методів" сюжетурядків ). Вони відомі як "загальні функції". Це використання описано в ? Plot.formula
додано Автор 42-, джерело
Дякую, я не знав, що я можу використовувати відношення y ~ x в сюжеті. Це вирішило мою проблему.
додано Автор ale93p, джерело

Ось приклад повторюваного побудови кількох кадрів даних, витягнутих з тривимірного масиву. Зверніть увагу на необхідність використання "[[" для обробки індексів, а також про те, що тип зображення за замовчуванням для ділянки - це точки, а не рядки. Можна змінити це за допомогою type = "l":

dfarray <- array( list(), c(2,3,4))
dfarray[[1,1,1]] <- data.frame(a=2:4, letters[2:4])  # need to use "[["
dfarray[[1,1,2]] <- data.frame(a=2:4, b=8:10)
dfarray[[1,1,3]] <- data.frame(a=2:4, b=10:12)
# Remember to make enough space to hold lines
 png(); plot(b ~a, data=dfarray[[1,1,1]], ylim=c(5,12) ) 
        for( x in 2:3) {lines( b~a, data=dfarray[[1,1,x]], col=x)}
 dev.off()

enter image description here

2
додано
Існує декілька "методів" сюжетурядків ). Вони відомі як "загальні функції". Це використання описано в ? Plot.formula
додано Автор 42-, джерело
Дякую, я не знав, що я можу використовувати відношення y ~ x в сюжеті. Це вирішило мою проблему.
додано Автор ale93p, джерело

Ось приклад повторюваного побудови кількох кадрів даних, витягнутих з тривимірного масиву. Зверніть увагу на необхідність використання "[[" для обробки індексів, а також про те, що тип зображення за замовчуванням для ділянки - це точки, а не рядки. Можна змінити це за допомогою type = "l":

dfarray <- array( list(), c(2,3,4))
dfarray[[1,1,1]] <- data.frame(a=2:4, letters[2:4])  # need to use "[["
dfarray[[1,1,2]] <- data.frame(a=2:4, b=8:10)
dfarray[[1,1,3]] <- data.frame(a=2:4, b=10:12)
# Remember to make enough space to hold lines
 png(); plot(b ~a, data=dfarray[[1,1,1]], ylim=c(5,12) ) 
        for( x in 2:3) {lines( b~a, data=dfarray[[1,1,x]], col=x)}
 dev.off()

enter image description here

2
додано
Існує декілька "методів" сюжетурядків ). Вони відомі як "загальні функції". Це використання описано в ? Plot.formula
додано Автор 42-, джерело
Дякую, я не знав, що я можу використовувати відношення y ~ x в сюжеті. Це вирішило мою проблему.
додано Автор ale93p, джерело

Це було досить цікаво. Я думаю, що ми можемо узагальнити цикл for, як це:

lapply(X = c(dfarray), FUN = function(x) {lines(x = x$a, y = x$b,   ylim=c(5,12))}
0
додано

Це було досить цікаво. Я думаю, що ми можемо узагальнити цикл for, як це:

lapply(X = c(dfarray), FUN = function(x) {lines(x = x$a, y = x$b,   ylim=c(5,12))}
0
додано