Rambler's Top100
Лёгкая версия форума* Виртуальная клавиатура  English  
Molbiol.ru | О проекте | Справочник | Методы | Растворы | Расчёты | Литература | Орг.вопросы
Web | Фирмы | Coffee break | Картинки | Работы и услуги | Биржа труда | Междисциплинарный биологический онлайн-журналZbio-wiki

NG SEQUENCING · ЖИЗНЬ РАСТЕНИЙ · БИОХИМИЯ · ГОРОДСКИЕ КОМАРЫ · А.А.ЛЮБИЩЕВ · ЗООМУЗЕЙ


Темы за 24 часа  [ Вход* | Регистрация* ]  
   



Форум: 
 

Ответ в R Help

Иконка сообщения*  [ Без иконки ]   Важно!   Вопрос   Информация     Обмен опытом   Шутка, забавная история     Поздравления, благодарности   Возмутительно!   Проблема   Картинки, фотографии
Введите имя

 [вст. закрывающие теги*

*


*



Смайлик: согласен Смайлик: не согласен Смайлик: улыбка Смайлик: пожалуйста, умоляю! Смайлик: помираю со смеху Смайлик: подмигивание Смайлик: подшучивать, дразнить Смайлик: смущение Смайлик: мне стыдно Смайлик: жуть! Смайлик: не понял Смайлик: закатывать глаза Смайлик: недовольство, огорчение Смайлик: рёв в три ручья Смайлик: злость Смайлик: супер Смайлик: умник Смайлик: чайник Смайлик: сходка Смайлик: Ура! Смайлик: не получается!
Перевод выделенного текста из латиницы в кирилицу. Текст в квадратных скобках '[]' не преобразуется

Пример: biologija -> биология [b] - полужирный шрифт

Пример: [b]полужирный[/b] [i] - курсив

Пример: [i]курсив[/i] [u] - подчёркнутый

Пример: [u]подчёркнутый[/u] [sup] - верхний индекс

Пример: температура 37[sup]o[/sup]C [sub] - нижний индекс

Пример: H[sub]2[/sub]O - вода [QUOTE] - применяется для цитирования чужих сообщений, цитата вставляется с небольшим отступом от края текста

Пример: [QUOTE]цитата[/QUOTE] [code] - форматирование как при вводе
Применяется для вывода теста как он есть, с предотвращением форматирования (автопереноса на новую строку), без интерпретации кодов форума и смайликов; вставляется с небольшим отступом от края текста.

Пример: 
[code]
программный код
	1 строка
	2 строка
[/code] [list] - список:
возможны опции: 1, a, A, i, I
[list] неупорядоченный; 
[list=1] нумерованный; 
[list=A] упорядоченный по буквам A-Z

Пример:
[list=1]
[*] первая строка;
[*] вторая строка;
[/list] Тег [hr] - горизонтальная разделительная линия

Пример: 
Абзац 1
[hr]
Абзац 2 [url] - гиперссылка

Примеры:
[url]www.ncbi.nlm.nih.gov[/url]
[url=http://www.ncbi.nlm.nih.gov/]NCBI[/url] [email] - ссылка на адрес электронной почты

Пример: [email]masha@mail.ru[/email] Тег [img] - рисунок
[img] - в строке;
[imgL] - выравнивание по левому краю; 
[imgR] - выравнивание по правому краю.

Пример:
[img]http://molbiol.ru/izo/rl.gif[/img] [ru] - только для русских читателей

Пример:
[ru]это увидят только те, кто использует русский интерфейс[/ru] [en] - только для английских читателей

Пример:
[en]это увидят только те, кто использует английский интерфейс[/en] [self] - текст виден только вам и администрации

Пример:
[self]это увидите только вы сами[/self]
[left] - выравнивание по левому краю

Пример: [left]текст слева[/left] [center] - выравнивание по центру

Пример: [center]текст в центре[/center] [right] - выравнивание по правому краю

Пример: [right]текст справа[/right] [just] - выравнивание по обоим краям

Пример: [just]выровненный текст[/just]

     размер сообщения / макс. размер:  / 15360


Последние 10 сообщений [ в обратном порядке ]
PS2004R Отправлен 12.10.2019 15:34
 
(DSV2015 @ 12.10.2019 13:15)
Ссылка на исходное сообщение  
Своя функция работает нормально, возвращает NA.




"Укоротите" индекс по которому обходите ряд соответственно размеру окна. Или пишите код функции учитывая переменную ширину окна.
DSV2015 Отправлен 12.10.2019 13:15
 
(PS2004R @ 12.10.2019 13:47)
Ссылка на исходное сообщение  "Укоротите" индекс по которому обходите ряд соответственно размеру окна. Или пишите код функции учитывая переменную ширину окна.

Это целиком ваше решение, со стороны какое решение будет корректным не видно.


Вчера мучался, не получилось. Надо как то вставить игнорирование NA, то есть если NA в одном из аргументов
функции, то возвращаем NA, если числа - считаем дальше. Из предыдущего примера должно получится следующее-

1 2 3 исходный вектор
+
NA 1 2 лаг от него
=
NA 3 5 дальше берем полученое и прибавляем к нему его же лаг
+
NA NA 3
=
NA NA 8 конечный результат

Должно получится

1 NA NA
2 3 NA
3 5 8

Своя функция работает нормально, возвращает NA.
CODE

> plus <- function(a, b) a + b
>
> x <- 1:3                      # исходный вектор x
> Lag1x <- c(NA, head(x, -1))   # лаг от x(появляется NA при сдвиге)
> x; Lag1x
[1] 1 2 3
[1] NA  1  2
> plus(x, Lag1x)
[1] NA  3  5
PS2004R Отправлен 12.10.2019 12:47
 
(DSV2015 @ 12.10.2019 12:40)
Ссылка на исходное сообщение  PS2004R
C NA в исходном векторе работает хорошо. Но если взять исходный вектор без NA(чтобы не путаться) и прибавлять к x1 не 0.5*x1, а лаг от x1(при сдвиге появляется NA), то не работает.



"Укоротите" индекс по которому обходите ряд соответственно размеру окна. Или пишите код функции учитывая переменную ширину окна.

Это целиком ваше решение, со стороны какое решение будет корректным не видно.
DSV2015 Отправлен 12.10.2019 12:40
  PS2004R
C NA в исходном векторе работает хорошо. Но если взять исходный вектор без NA(чтобы не путаться) и прибавлять к x1 не 0.5*x1, а лаг от x1(при сдвиге появляется NA), то не работает.
CODE


> get.conv <- function(s,f = function(x1,x2) x1+2) {
+      j <- 1:(length(s))
+      t(sapply(s, function(i) Reduce(f, i*j, accumulate = T)))
+ }
>
> x <- 1:3                      # исходный вектор x
> Lag1x <- c(NA, head(x, -1))   # лаг от x(появляется NA при сдвиге)
> x; Lag1x
[1] 1 2 3
[1] NA  1  2
>
> get.conv(x, function(x1,x2) x1 + 0.5*x1)
    [,1] [,2] [,3]
[1,]    1  1.5 2.25
[2,]    2  3.0 4.50
[3,]    3  4.5 6.75
> get.conv(x, function(x1,x2) x1 + c(NA, head(x1, -1)))
    [,1] [,2] [,3]
[1,]    1   NA   NA
[2,]    2   NA   NA
[3,]    3   NA   NA
PS2004R Отправлен 12.10.2019 12:01
 
(DSV2015 @ 12.10.2019 10:31)
Ссылка на исходное сообщение  PS2004R

CODE

get.conv <- function(s,f = fnc)
{    
    j <- 1:(n+1)
    t(sapply(s, function(i) Reduce(f, i*j, accumulate = T)))
}

f



У вас неработающий код написан.

Объясните чем вас не устраивает поведение по умолчанию. NA возвращаются.

CODE


> get.conv <- function(s,f = function(x1,x2) x1+2) {
+     j <- 1:(length(s))
+      t(sapply(s, function(i) Reduce(f, i*j, accumulate = T)))
+ }

> get.conv(1:3, function(x1,x2) x1+0.5*x1)
    [,1] [,2] [,3]
[1,]    1  1.5 2.25
[2,]    2  3.0 4.50
[3,]    3  4.5 6.75
> get.conv(c(1,NA,3), function(x1,x2) x1+0.5*x1)
    [,1] [,2] [,3]
[1,]    1  1.5 2.25
[2,]   NA   NA   NA
[3,]    3  4.5 6.75

DSV2015 Отправлен 12.10.2019 10:31
  PS2004R
Осталась одна проблема с пустыми значениями. Нужно что бы в случае появления пустого значения в процессе выполнения своей функции они игнорировались и строки просто заполнялась NA. При наличии NA в исходном векторе работает корректно, но при появлении NA в свой функции, например лага(fnc2), все ломается.
CODE

get.conv <- function(s,f = fnc)
{    
    j <- 1:(n+1)
    t(sapply(s, function(i) Reduce(f, i*j, accumulate = T)))
}

fnc1 <- function(x1,x2) x1 + x1  # своя или иная функция
fnc2 <- function(x1,x2) x1 + c(NA, head(x1, -1))

x <- c(NA, 1:4)                  # исходный вектор
n <- 3                               # выполнить n раз

data.frame(get.conv(x, fnc1))
data.frame(get.conv(x, fnc2))
PS2004R Отправлен 11.10.2019 10:37
 
(DSV2015 @ 11.10.2019 10:20)
Ссылка на исходное сообщение  PS2004R
Не получается. Нужно иметь возможность в первом блоке задавать любую свою или пр. функцию и аргументы, во втором исполняемом(sapply(a, ...) ничего не трогая. Не даются мне сложные вложения.
CODE

plus <- function(a, b) a + b  # своя или иная функция
a <- 1:4                               # входной вектор
b <- 3                                  # второй аргумент

sapply(a, ..... ?                   # исполняемый блок



CODE


> get.conv <- function(s,f = function(x1,x2) x1+2) {
+     j <- 1:(length(s))
+     t(sapply(s, function(i) Reduce(f, i*j, accumulate = T)))
+ }
> get.conv(1:3)
    [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
[3,]    3    5    7
> get.conv(1:3, function(x1,x2) x1+0.5*x1)
    [,1] [,2] [,3]
[1,]    1  1.5 2.25
[2,]    2  3.0 4.50
[3,]    3  4.5 6.75

DSV2015 Отправлен 11.10.2019 10:20
  PS2004R
Не получается. Нужно иметь возможность в первом блоке задавать любую свою или пр. функцию и аргументы, во втором исполняемом(sapply(a, ...) ничего не трогая. Не даются мне сложные вложения.
CODE

plus <- function(a, b) a + b  # своя или иная функция
a <- 1:4                               # входной вектор
b <- 3                                  # второй аргумент

sapply(a, ..... ?                   # исполняемый блок
PS2004R Отправлен 10.10.2019 10:02
 
(DSV2015 @ 10.10.2019 08:27)
Ссылка на исходное сообщение  Нужно применить к вектору x свою функцию n раз и записать начальный и промежуточные результаты в датафрейм. Для примера напишем функцию plus и будем прибавлять 2 на каждом шаге. Должно получится: X1 = исходный вектор, X2 = X1 + 2, X3 = X2 + 2

X1 X2 X3
1 3 5
2 4 6
3 5 7




CODE

> sapply(1:3, function(i) Reduce(function(x1,x2) x1+2, i*1:3, accumulate = T))
    [,1] [,2] [,3]
[1,]    1    2    3
[2,]    3    4    5
[3,]    5    6    7
DSV2015 Отправлен 10.10.2019 08:27
  Нужно применить к вектору x свою функцию n раз и записать начальный и промежуточные результаты в датафрейм. Для примера напишем функцию plus и будем прибавлять 2 на каждом шаге. Должно получится: X1 = исходный вектор, X2 = X1 + 2, X3 = X2 + 2

X1 X2 X3
1 3 5
2 4 6
3 5 7

Как это можно сделать?
CODE

plus <- function(a, b)
{
 return(a + b)
}

x <- 1:3
n <- 2

DF <- data.frame(matrix(nrow = length(x),ncol=n+1))
DF$X1 <- x
DF
Посмотреть тему (откроется в новом окне)

Rambler   molbiol.ru - методы, информация и программы для молекулярных биологов              

 ·  Викимарт - все интернет-магазины в одном месте  ·  Доска объявлений Board.com.ua  · 
--- сервер арендован в компании Hetzner Online, Германия ---
--- администрирование сервера: Intervipnet ---

Хеликон · Диаэм · ИнтерЛабСервис · Beckman Coulter · SkyGen · ОПТЭК · BIOCAD · Евроген · Синтол · БиоЛайн · Sartorius · Химэксперт · СибЭнзим · Tecan · Даниес · НПП "ТРИС" · Биалекса · ФизЛабПрибор · Genotek · АТГ Сервис Ген · Биоген-Аналитика
Ваш форум  ·  redactor@molbiol.ru  ·  реклама  ·  Дата и время: 23.10.19 11:45
Bridged By IpbWiki: Integration Of Invision Power Board and MediaWiki © GlobalSoft