Jurik-Phys.Net

~ Простота и ясность ~

Инструменты пользователя

Инструменты сайта


Боковая панель

Категории

Контакты

itechnology:r

R Language

Google's R Style Guide

Вложенные списки (nested lists)

R language развивает парадигму векторной работы с данными. Это означает, что работа с объектом (вектором, списком и т.д.) происходит не последовательно от элемента к элементу, а параллельно со всеми элементами данных объектов. Такой подход позволяет существенно ускорить операции над векторами, списками, матрицами и т.д.

Команды for, loop предоставляют последовательный (медленный) доступ к элементам данных, команды *apply предоставляют параллельный (быстрый) доступ.

Пример работы со вложенными списками

Создание вложенного списка

 
inside_list  <- list()
outside_list <- list()
for(i in 1:5) {
    for(j in 1:5) {
        inside_list[[j]] <- i*j
    }
    outside_list[[i]] <- inside_list
}

Элементы первого внешнего списка

laply(ousidelist[[1]], identity)
[1] 1 2 3 4 5

Все элементы вложенного списка

laply(outside_list, function(x) laply(x, identity))
     1  2  3  4  5
[1,] 1  2  3  4  5
[2,] 2  4  6  8 10
[3,] 3  6  9 12 15
[4,] 4  8 12 16 20
[5,] 5 10 15 20 25

Извлечение квадратного корня из каждого элемента вложенного списка

laply(outside_list, function(x) laply(x, function(x) sqrt(x)))
        1        2        3        4        5
[1,] 1.000000 1.414214 1.732051 2.000000 2.236068
[2,] 1.414214 2.000000 2.449490 2.828427 3.162278
[3,] 1.732051 2.449490 3.000000 3.464102 3.872983
[4,] 2.000000 2.828427 3.464102 4.000000 4.472136
[5,] 2.236068 3.162278 3.872983 4.472136 5.000000

Установка пакетов из CRAN

install.packages("dendextend", dependencies = TRUE, repos = "http://cran.rstudio.com/")
itechnology/r.txt · Последнее изменение: 2016/12/01 11:22 — jurik_phys

Инструменты страницы