Понимание l_ply от plyr - PullRequest
       6

Понимание l_ply от plyr

1 голос
/ 06 марта 2019

Из документации:

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

Я потратил некоторое время на игры и пытался найти подходящий вариант использования, но не нашел (пока).

Просмотр примеров не помог мне лучше понять это.

Пример использования:

l_ply(iris[1:5,1], function(x) print(summary(x)))

Это будет работать.

Однако, при каких обстоятельствах нужно распечатать, а затем отбросить эти результаты?

1 Ответ

4 голосов
/ 08 марта 2019

Рассмотрим следующее

X <- matrix (c (rnorm (50)), ncol = 5);

Предположим, что каждый столбец X указывает серию, которую вы хотите превзойти. Вы можете сделать это следующим образом, сначала создав пустой график, а затем нанеся ряд, соответствующий каждому столбцу, используя lapply. Хотя lapply вернет значения, возвращаемые вызовом plot, которые нам не нужны.

plot (NULL, ylim = range (X), xlim = c (1, nrow (X)));
lapply (1:ncol (X), function (i) points (X[,i], type = "o", col = i));

Вместо этого вы можете использовать

plot (NULL, ylim = range (X), xlim = c (1, nrow (X)));
l_ply (1:ncol (X), function (i) points (X[,i], type = "o", col = i));

Это имеет тот же эффект, но не возвращает значения, возвращаемые plot. Здесь «побочным эффектом» является отображение функции plot на устройстве.

...