Описание тега r-s4

Один из методов объектно-ориентированного программирования на языке R.
2 ответа

is.object и система классов S3

С использованием class Функция позволяет определить класс объекта: > x = 5 > class(x) [1] "numeric" Я также понимаю, что мы можем использовать is.object команда, чтобы определить, есть ли у объекта класс. Однако некоторые типы объектов являютс…
18 янв '11 в 14:35
1 ответ

Как вы получаете методы S3 для работы с объектами S4?

Я пишу метод S3, который я хочу работать с любым объектом R, включая объекты S4. Первое, что я не понимаю, это то, что классы S4 не являются производными от базового класса S4, поэтому f <- function(x) UseMethod("f") Я не могу просто объявить f.S…
06 май '11 в 14:47
1 ответ

Что такое классы S1 и S2?

В R есть S3, S4 и с R 2.12 справочные классы (неофициально называемые классами S5). Есть ли такая вещь, как класс S1 (или S2)? Если так, то кто они? Если нет, то зачем начинать с S3?
17 янв '11 в 10:54
5 ответов

Что означает "методы S3" в R?

Поскольку я довольно плохо знаком с R, я не знаю, что такое методы и объекты S3. Я обнаружил, что существуют объектные системы S3 и S4, и некоторые рекомендуют использовать S3 поверх S4, если это возможно (http://google-styleguide.googlecode.com/svn…
05 июл '11 в 12:13
1 ответ

R Преобразование нескольких функций в один объект с помощью объектно-ориентированного программирования (S3 и S4)

Я пытаюсь понять, как превратить функции в объектно-ориентированное программирование на R. Так, например, как данные и 2 функции, приведенные ниже, можно превратить в один объект с помощью S3 (а затем S4)? (Может быть, некоторые другие простые данны…
08 фев '20 в 18:38
0 ответов

И в S3, и в S4 R, почему нам нужно дважды указывать имя универсальной функции?

Например, в S4: setGeneric("myGeneric", function(x, ..., verbose = TRUE) standardGeneric("myGeneric"), signature = "x" ) Вот как вы определяете универсальную функцию. Зачем нам нужно имя myGeneric в двух разных местах?
17 мар '20 в 19:14
1 ответ

R S4 классы с одинаковым именем из разных пакетов

Предположим, что есть два пакета. Package_A имеет этот класс: setClass("Person", slots = c( name = "character", age = "numeric" ) ) setGeneric("age", function(x) standardGeneric("age")) setMethod("age", "Person", function(x) x@age) Package_B имеет а…
17 мар '20 в 19:38
1 ответ

Получите внутренние функции R, чтобы использовать мой метод S4

Я создал собственный класс S4, и идея состоит в том, что он представляет вектор, который всегда отсортирован, поэтому я не хочу ничего с ним делать. Итак, я определил для своего класса заглушку: MyClass <- methods::setClass("MyClass", slots=list(…
05 апр '21 в 06:00
1 ответ

Как избежать апкастинга в системе класса S4 R

Я пытаюсь создать неявно центрированные / масштабированные матрицы в R с использованием S4 (с целью сделать это для больших разреженных матриц). Я могу создать неявно масштабируемую матрицу, которая правильно выполняет левое и правое умножение с век…
26 окт '21 в 00:05
1 ответ

Групповые общие методы для Ops (для временных рядов)

Я пытаюсь определить наследование класса Ops для класса S3, который представляет собой список и имеет временной ряд внутри списка. tsnewobject_a <- structure(list(data=ts(1:10,frequency=4,start=2010)), class="newclass") tsnewobject_b <- struct…
02 мар '21 в 09:49
1 ответ

Определить класс S4, наследуемый от функции

Я пытаюсь написать класс S4, который специально возвращает числовой вектор той же длины, что и ввод. я думаю, что я близок; проблема, с которой я столкнулся сейчас, заключается в том, что я могу создавать новые классы только из функций, которые живу…
12 янв '22 в 20:27
0 ответов

Есть ли в системе R S4 OOP различие между классами и типами?

Большие языки в стиле инкапсуляции, такие как Java, Kotlin или C#, имеют различие между классами и типами. S4, будучи ООП-системой с универсальными функциями, принципиально отличается. Но есть ли у него по-прежнему какие-либо различия в классе/типе?…
16 авг '22 в 14:03
2 ответа

Как использовать функцию замены для setAs() в R?

Я пытаюсь определить метод принуждения в R, включая функцию замены. К сожалению, ни документация, ни дальнейшие обсуждения в Интернете не разъясняют, как использовать замену параметра в этой функции. Моя цель - заставить метод принуждения работать о…
26 сен '22 в 07:06
2 ответа

Реализация арифметической системы в R

Я начал реализовывать в R своего рода числа. У меня есть функция их сложения, умножения и т. д. Теперь я хочу сделать удобный интерфейс для арифметики над этими числами. То есть я не хочу, чтобы пользователь вводилmultiply(x, add(y, z)), ноx * (y + …
12 апр '23 в 15:19
2 ответа

Преобразовать NA в 0

мои данные (тип S4) выглядят так: > rowData(ds_res1$res) DataFrame with 144 rows and 4 columns cluster_id marker_id p_val p_adj <factor> <factor> <numeric> <numeric> B cells B cells OXO40 0.831005 0.996855 Activated Monocy…
22 мар '23 в 12:33
1 ответ

Как я могу написать метод `%*%` для подкласса базовой матрицы S3?

Я хотел бы написать метод для подкласса базовой матрицы. Мой подкласс - это класс S3 и документацияhelp("%*%")говорит, что это универсальный вариант S4 и что методы S4 необходимо написать для функции двух аргументов с именемxиy. Я написал методы для…
31 мар '23 в 00:49
0 ответов

Неслотовые параметры в методах инициализации для объектов S4

Я пытаюсь определить метод для класса S4. Согласно документации отmethods::new Методы инициализации часто пишутся тогда, когда естественными параметрами, описывающими новый объект, не являются имена слотов. Если вы определяете такой метод, вы должны…
19 июн '23 в 09:55
1 ответ

Что на самом деле делает ExportClasses с классами S4?

Я пытался понять, как пространство имен работает с классами S4, поэтому составил небольшой пример, используя различные директивы экспорта. Результаты не имеют для меня никакого смысла, поэтому я надеялся, что кто-нибудь сможет помочь объяснить, что …
18 июл '23 в 20:15
2 ответа

Переслать все аргументы, переданные методу подмножества `[`, в другой объект в R.

В R у меня есть класс S4, который «обертывает» вектор. Я хочу перенаправить многие обычные методы S3 и S4 этого класса в егоvecslot, который содержит вектор. Однако у меня возникли особые проблемы с этим методом из-за его особых свойств. Изменить: я…
11 мар '23 в 07:43
0 ответов

Можно ли выделить определенные кластеры из данных drop-seq, объединить их и создать матрицу экспрессии GeneXcount (формат Bulk-Seq)

следовали сценарию R по ссылке ниже: https://github.com/jeremymsimon/MouseCortex/blob/master/E14_processing.R Моя цель — изолировать только радиальные кластеры глии (которые будут кластерами 8, 10, 14 и 21), суммировать экспрессию во всех этих класт…
03 июл '23 в 20:15