Size: a a a

R (язык программирования)

2021 March 25

IY

Igor Yegin in R (язык программирования)
Господа, кто знает, как тестировать элементы списка на равенство?

Допустим, есть такой list

[[1]]
c(1, 4, 5)
[[2]]
3
[[3]]
c(2, 6)
[[4]]
c(2, 6)

Как мне заставить R вывести все элементы списка, равные c(2, 6)?
источник

AC

Andrey C. in R (язык программирования)
x[sapply(x, function (e) all(e==c(2,6)))]
наверное, можно и проще
источник

IY

Igor Yegin in R (язык программирования)
Спасибо! Но вот да, неужели со списками в R такая дрочильня неизбежна?
источник

AP

Aleksandr Pidtykan in R (язык программирования)
Igor Yegin
Спасибо! Но вот да, неужели со списками в R такая дрочильня неизбежна?
rlist
источник

IY

Igor Yegin in R (язык программирования)
Спасибо, надо будет глянуть
источник

YS

Yuriy Saraikin in R (язык программирования)
Igor Yegin
Господа, кто знает, как тестировать элементы списка на равенство?

Допустим, есть такой list

[[1]]
c(1, 4, 5)
[[2]]
3
[[3]]
c(2, 6)
[[4]]
c(2, 6)

Как мне заставить R вывести все элементы списка, равные c(2, 6)?
l <- list(c(1, 4, 5), 3, c(2, 6), c(2, 6))

purrr::keep(l, ~all(.x == c(2, 6)))
источник

ИП

Иван Поздняков... in R (язык программирования)
ну и еще как вариант:
l %>% purrr::map_lgl(~identical(.x, c(2, 6)))
источник

IY

Igor Yegin in R (язык программирования)
Yuriy Saraikin
l <- list(c(1, 4, 5), 3, c(2, 6), c(2, 6))

purrr::keep(l, ~all(.x == c(2, 6)))
Такое ощущение, что в base R работу со списками не особо-то предусмотрели
источник

A

Andrey in R (язык программирования)
R весь вокруг списков построен, это ж Лисп
источник

A

Andrey in R (язык программирования)
Igor Yegin
Господа, кто знает, как тестировать элементы списка на равенство?

Допустим, есть такой list

[[1]]
c(1, 4, 5)
[[2]]
3
[[3]]
c(2, 6)
[[4]]
c(2, 6)

Как мне заставить R вывести все элементы списка, равные c(2, 6)?
Это достаточно странная с прикладной точки зрения задача. Зачем выводить что-то, равное другому объекту, если можно вывести сам этот объект?
источник

ИП

Иван Поздняков... in R (язык программирования)
Andrey C.
x[sapply(x, function (e) all(e==c(2,6)))]
наверное, можно и проще
по идее, тут выйдет и вариант с c(2,6,2,6) из-за ресайклинга
источник

ИП

Иван Поздняков... in R (язык программирования)
Yuriy Saraikin
l <- list(c(1, 4, 5), 3, c(2, 6), c(2, 6))

purrr::keep(l, ~all(.x == c(2, 6)))
тож самое с ресайклингом
источник

A

Andrey in R (язык программирования)
Нужно identical юзать
источник

ИП

Иван Поздняков... in R (язык программирования)
> l <- list(c(1, 4, 5), 3, c(2, 6), c(2, 6, 2, 6)) >  > purrr::keep(l, ~all(.x == c(2, 6))) [[1]] [1] 2 6  [[2]] [1] 2 6 2 6  Предупреждение: В .x == c(2, 6) :   длина большего объекта не является произведением длины меньшего объекта
источник

IY

Igor Yegin in R (язык программирования)
Andrey
Это достаточно странная с прикладной точки зрения задача. Зачем выводить что-то, равное другому объекту, если можно вывести сам этот объект?
Мне надо посчитать количество векторов в списке, которые равны чему-либо

На языке векторов это length(foo[foo == 1]), но у меня список
источник

A

Andrey in R (язык программирования)
Чему-либо равных (не NULL? Не NA?), или все-таки конкретному значению?
источник

A

Andrey in R (язык программирования)
Andrey C.
x[sapply(x, function (e) all(e==c(2,6)))]
наверное, можно и проще
В этом варианте меняем all() на identical() и == на ,
источник

IY

Igor Yegin in R (язык программирования)
Andrey
Чему-либо равных (не NULL? Не NA?), или все-таки конкретному значению?
Конкретному значению
источник

А

Анатолий in R (язык программирования)
Коллеги, есть олимпиадная задачка)
Имеем массив элементов, который назовём "эталон"
а, б, с, ... л, м, н элементы, например. Порядок значим!
Есть массив элементов, который назовём "эксперимент"
По размеру он такой же, как эталонный. Может включать элементы как те же, что и в эталон, так и другие.

Предполагается, что качественный эксперимент - это полная копия эталона

Но мир не совершён и возможны отклонения, например, не существенные
а, с, б,... м, н, л
Или существенные
е, л, д,... а, б, н
и т. д.

Чем сильнее позиция эксперимента "дальше" (в любую сторону) от эталона, тем ниже качество эксперимента

Какие метрики, статистики для вычbсления общего качества массива эксперимента можете предложить?
источник

ИЭ

Илья Эйдлин... in R (язык программирования)
Анатолий
Коллеги, есть олимпиадная задачка)
Имеем массив элементов, который назовём "эталон"
а, б, с, ... л, м, н элементы, например. Порядок значим!
Есть массив элементов, который назовём "эксперимент"
По размеру он такой же, как эталонный. Может включать элементы как те же, что и в эталон, так и другие.

Предполагается, что качественный эксперимент - это полная копия эталона

Но мир не совершён и возможны отклонения, например, не существенные
а, с, б,... м, н, л
Или существенные
е, л, д,... а, б, н
и т. д.

Чем сильнее позиция эксперимента "дальше" (в любую сторону) от эталона, тем ниже качество эксперимента

Какие метрики, статистики для вычbсления общего качества массива эксперимента можете предложить?
не ясно, что значит дальше
типа б ближе к а, чем н?
источник