Rambler's Top100
Lo-Fi Version* Virtual  Russian keyboard  Russian  
Molbiol.ru | Project | Protocols | Programs | Literature
Web | Companies | Marketplace | Labor exchange

Today's active topics  [ Log In* | Register* ]  
   



Forum: 
 

Click to add to Selected Topics* R Help -- Давайте составим русский FAQ --
Topic Curators:* plantago
Options: I want to be curator* · Track this topic* · Email this topic · Print this topic*
Topic view:* Outline · [ Standard ] · Linear+


pages (53): « < 50 51 52 53 > 
Reply to this topicStart new topicStart Poll
User is offline! bf109xxl
Member



 old post 12.01.2019 20:55     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Тратить время на изучение очередной системы визуализации в R, которая лучше соответствует идеологии этого продукта, я буду, если функционал будет не хуже, чем у ggplot-а, либо в ней будут некие важные функции, отсутствующие в ggplot (даже при менее обширном функционале в целом).
И еще. Для меня приемлемость того или иного средства часто определяется качеством литературы, благодаря которой это средство можно быстро и достаточно глубоко освоить. В случае ggplot-а таким источником для меня явилась книга Уинстона Чанга "R Graphics Cookbook" (ссылка на свежее издание, в бумажном виде у меня 1е). Мне кажется, эта книга будет очень полезной именно для новичков.

Number of thanks: 2These members thanked the author (2): Ulvhare, Алекс3212
User is offline! plantago
Advanced Member



 old post 12.01.2019 21:43     Report Post  Report Post for topic curator       Personal message  Send an e-mail  Web site

Да, хорошая книга! Но все-таки не для новичков smile.gif

Number of thanks: 1These members thanked the author (1): Алекс3212
User is offline! Ulvhare




 old post 13.01.2019 11:54     Report Post  Report Post for topic curator       Personal message  Send an e-mail

По-моему, дело вкуса. Несколько лет назад была в сети дискуссия (Jeff Leek, David Robinson и другие) на тему "ggplot vs classic R graphics", и я, увлечённый ggplot, заволновался, не делаю ли стратегическую ошибку. По итогам получилось, что человек, давно и глубоко изучавший базовую графическую систему, сделает свою работу примерно с той же скоростью, что и "научный сотрудник младшего возраста" при помощи ggplot. Есть плюсы и минусы в обеих системах.
Конкретно для моих задач (exploratory analysis почти по Zuur et al., 2010 + немного дисперсионного, всё в Rmarkdown -> html + pdf + [odt -> doc]) ggplot в 99% случаев удобнее, т.к.:
  • Читабельный код. Когда год спустя я обсчитываю следующее исследование, я сразу вижу, что творил, и могу воспроизвести с новыми данными, параллельно совершенствуя код.
  • Piping. Помимо чисто субъективной любви к unix-way, это удобнее в Rmarkdown-отчёте.
  • Создав пару тем (для ярких отчётов начальству + для журнала) не надо подгонять каждый график, всё будет унифицировано.
  • Фасетки по группам. Тут tidyverse + ggplot вне конкуренции, особенно когда надо быстро и много.
При этом Кливлендовские точечные графики и "усатые ящики" - мой основной визуальный инструмент для EDA. Потратив немного времени для доводки их в ggplot, я сделал полуавтоматические функции (напр., первая версия extended boxplot) и могу сосредоточиться на своих данных, а не на приведении графиков в удобочитаемый вид.
Ну и да, субъективно мне привычнее ООП, поэтому-то код ggplot и легче воспринимать. Сам считаю, что Викхэм - гениальный извращенец, но мне оказалось проще "довести напильником" его творения, чем писать свои функции на основе base graphics. Опять же, plantago в своей книге предостерегает от циклов ;-)
Для обучения R, наверное, классика лучше подходит, но это вне моей компетенции, а вот "ggplotminus" - это хорошая идея.

Number of thanks: 1These members thanked the author (1): plantago
User is offline! Алекс3212




 old post 13.01.2019 20:41     Report Post  Report Post for topic curator       Personal message  Send an e-mail

(bf109xxl @ 11.01.2019 14:12)
Link to the original post  
CODE
ggplot(Weather.1,
         aes(x = <Date column name>,
               y = Prod,
               fill = Weath)) +
 geom_bar(stat = "identity")




Вау!! Очень быстро. Все конечно получилось, спасибо большое. Жаль, что по моему основному виду деятельности нет таких форумов и отзывчивого сообщества. Как то, написал на один форум года 4 назад, до сих пор жду, может кто то ответит, хотя уже вопрос не актуальный wall.gif lol.gif
User is offline! Алекс3212




 old post 13.01.2019 20:45     Report Post  Report Post for topic curator       Personal message  Send an e-mail

(bf109xxl @ 12.01.2019 21:55)
Link to the original post  Тратить время на изучение очередной системы визуализации в R, которая лучше соответствует идеологии этого продукта, я буду, если функционал будет не хуже, чем у ggplot-а, либо в ней будут некие важные функции, отсутствующие в ggplot (даже при менее обширном функционале в целом).
И еще. Для меня приемлемость того или иного средства часто определяется качеством литературы, благодаря которой это средство можно быстро и достаточно глубоко освоить. В случае ggplot-а таким источником для меня явилась книга Уинстона Чанга "R Graphics Cookbook" (ссылка на свежее издание, в бумажном виде у меня 1е). Мне кажется, эта книга будет очень полезной именно для новичков.


За ссылку на книгу, отдельная благодарность. Как раз искал что то по ggplot
User is offline! plantago
Advanced Member



 old post 14.01.2019 20:27     Report Post  Report Post for topic curator       Personal message  Send an e-mail  Web site

Кстати, нечто похожее на "ggminus" уже имеется: https://rdrr.io/cran/ggthemes/man/theme_base.html
Хотя скорее имитирует внешний вид, а не кливлендские принципы.

Number of thanks: 3These members thanked the author (3): PS2004R, bf109xxl, Ulvhare
User is offline! bf109xxl
Member



 old post 15.01.2019 00:01     Report Post  Report Post for topic curator       Personal message  Send an e-mail

"Хоботов, это мелко!" (с) "Покровские ворота" smile.gif

Хотя да, может уменьшить скрипт на несколько строк. Когда мне не лень, я "выкидываю" дефолтный дизайн ggplot-а, если он не требуется для облегчения восприятия, теперь это сделать проще. Поэтому - спасибо.
User is offline! Ulvhare




 old post 15.01.2019 12:08     Report Post  Report Post for topic curator       Personal message  Send an e-mail

(plantago @ 14.01.2019 21:27)
Link to the original post  Кстати, нечто похожее на "ggminus" уже имеется: https://rdrr.io/cran/ggthemes/man/theme_base.html
Хотя скорее имитирует внешний вид, а не кливлендские принципы.

Да-да-да, на её-то основе я и сварганил тему под МАИК-овские журналы smile.gif
Вот интересно, для базовой графики создать тему можно (цвета - визуально различающиеся grayscale, толщина линий, сетки, шрифты, легенды)?
User is offline! plantago
Advanced Member



 old post 15.01.2019 18:58     Report Post  Report Post for topic curator       Personal message  Send an e-mail  Web site

> Да-да-да, на её-то основе я и сварганил тему под МАИК-овские журналы
Где взять?
User is offline! ПолинаШ
Member



 old post 20.01.2019 15:45     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Запуталась в грамотных решениях и прошу подсказать.
Есть исходный DF1
Фактор Среднее
1 A 14.500
2 B 15.330
3 C 2.083
4 D 4.917
5 E 3.500
6 F 16.670
Нужно получить DF2 для каждого значения фактора, где
rs =rnorm(100, DF1$Среднее, sd=1)
фактор rs
1 A 15.85653
2 A 15.95480
3 A 14.96506
4 A 14.73295
5 A 13.67393
User is offline! ПолинаШ
Member



 old post 20.01.2019 20:52     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Извините, получилось совсем просто - как-то так:
f <- rep(DF1$Фактор,100)
rs <- rep(rnorm(6, DF1$Среднее),100)
DF2 <- data.frame(f,rs)


Number of thanks: 2These members thanked the author (2): plantago, PS2004R
User is offline! Алекс3212




 old post 24.01.2019 14:34     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Доброго времени суток, подскажите пожалуйста совсем примитивные вещи мне новичку. Добавил примеры графики, чтобы нагляднее было.
1. как добавить индивидуальную линию к каждому VibNo, а не общую для всех VibNo рассчитанную по всему столбцу?
library("ggplot2") # загрузка библиотеки для графиков
library(readxl) # загрузка библиотеки для импорта Excel
APS <- read_xlsx("0123aps.xlsx") #загрузка и сохранение в базе файла
APS$VibNo <- as.factor(APS$VibNo) # создание фактора
ggplot(APS, aes(x=VibNo, y=AveragePhase, color= VibNo))+
   geom_jitter() +
         geom_hline(yintercept = median(APS$AveragePhase)) +
              ggtitle("Average Phase") +
                    ylab("Значение")+xlab("Номер УВСС")




2. Как я могу изменить гистограмму так, чтобы отображалось не количество по y , а %. Посмотрел в литературе написано что нужно дописать type ="percent", но или я не туда дописываю эту команду или это не правильно.
library(readxl) # загрузка библиотеки для импорта Excel
COG <- read_xlsx("COG 0123.xlsx")
old.par <- par(mfrow=c(1,2))
hist(COG$COG, main= "COG,m", xlab= "Метры", ylab = "Количество", col = "grey")
boxplot(COG$COG, main= "COG,m", ylab= "Метры", col = "grey")
par(old.par) # fineshed code


3. Как я могу отобразить на гистограмме легенду и как сделать так, чтобы данные по x (часы) отображались по порядку от 0 до 24, потому что по умолчанию сначала все 1, т.е. 1 10 11 и тд потом 2 20 21 и потом 3 4 5 и тд.
Timestat <- read_xlsx("G:/WorkU/06 Учет работ/статистика.xlsx")
  Timestat
    Timestat$time <- as.factor(Timestat$time)
      ggplot(Timestat, aes(x=as.character(time), y=ff))+
geom_bar(stat = "identity") +
        xlab("Часы") + ylab("Количество ф.н.")

Всем заранее спасибо за любые советы и помощь

This post has been edited by Алекс3212: 25.01.2019 09:33

Attached image(s)
Attached ImageScreenshot_1.png
Screenshot_1.png — (44.37k)   

Attached ImageScreenshot_3.png
Screenshot_3.png — (24.3k)   

User is offline! plantago
Advanced Member



 old post 24.01.2019 20:39     Report Post  Report Post for topic curator       Personal message  Send an e-mail  Web site

ggplot не люблю, но тут найдутся, я надеюсь, любители smile.gif
гистограмма:
hh <- hist(trees[, 1], plot=FALSE)
hh$counts <- 100*hh$counts/sum(hh$counts)
plot(hh) # теперь оно в процентах
User is offline! Алекс3212




 old post 27.01.2019 09:36     Report Post  Report Post for topic curator       Personal message  Send an e-mail

(plantago @ 24.01.2019 21:39)
Link to the original post  ggplot не люблю, но тут найдутся, я надеюсь, любители smile.gif
гистограмма:
hh <- hist(trees[, 1], plot=FALSE)
hh$counts <- 100*hh$counts/sum(hh$counts)
plot(hh) # теперь оно в процентах


Возможно я слишком усложнил и сузил задачу, чуть проше думаю можно, насчет 1 вопроса. Может быть я могу количественно получить те же самые значения. У меня есть около 8 столбцов, представим это как разные лекарства. Все строки относятся к пациентам, пациентов 10 и после каждого приема лекарства на протяжении 20 лет записываются показатели ну скажем давления. Таким образом строк более 100 000. Как я могу получить среднее, медиану, максимальные значения (то, что есть в summary) по каждому отдельному пациенту после приема каждого из 8 лекарств?
Я имею ввиду, чтобы получить примерно в таком виде: пациент- summary за все время наблюдения давление после приема лекарства 1, отдельно 2 и тд. По второму пациенту аналогично. Всем заранее спасибо за любую помощь.
User is offline! bf109xxl
Member



 old post 27.01.2019 16:15     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Если в день принималось более одного препарата, то оформляете данные в виде таблицы (data, например):
CODE
<pat> <d1>...<d8> <date>

где в колонке pat ID пациента, в колонках "d1"-"d8" - значения параметра после приема соотв. препарата, "date" - понятно, в колонках для неприменявшихся в этот день препаратов должно стоять NA.
Потом с помощью melt() из {reshape} переводите в удобоваримую форму:
CODE
data.mltd <- melt(data, id=c("pat", "date"), na.rm=TRUE)

Получится таблица data.mltd вида:
CODE
<pat> <date> <variable> <value>.

Если пациент в день принимал лишь по одному препарату, то сразу создавать таблицу в этом формате (variable содержит ID препарата, а value - значение параметра).
После чего можно применять tapply(), например:
CODE
tapply(data.mltd$value, list(data.mltd$pat, data.mltd$variable), mean)


This post has been edited by bf109xxl: 27.01.2019 19:07

Number of thanks: 1These members thanked the author (1): plantago
User is offline! bf109xxl
Member



 old post 27.01.2019 16:35     Report Post  Report Post for topic curator       Personal message  Send an e-mail

(Алекс3212 @ 24.01.2019 13:34)
Link to the original post
3. Как я могу отобразить на гистограмме легенду и как сделать так, чтобы данные по x (часы) отображались по порядку от 0 до 24...

Убрать вот это:
CODE
Timestat$time <- as.factor(Timestat$time)

Зачем оно вообще понадобилось? confused.gif

This post has been edited by bf109xxl: 27.01.2019 16:35

Number of thanks: 2These members thanked the author (2): plantago, Алекс3212
User is offline! Ulvhare




 old post 01.02.2019 20:36     Report Post  Report Post for topic curator       Personal message  Send an e-mail

(plantago @ 15.01.2019 19:58)
Link to the original post  > Да-да-да, на её-то основе я и сварганил тему под МАИК-овские журналы
Где взять?


Малость перепутал, всё-таки на основе theme_classic из самого пакета ggplot2:


CODE

theme_set(theme_classic(base_size = 10, base_family = "Newton")) +
 theme_update(axis.text = element_text(colour = "black"),
               axis.ticks = element_line(colour = "black"),
               axis.title = element_text(size = 8),
               strip.text = element_text(colour = "black"),
               strip.background = element_rect(colour = "white"))



Шрифт "Newton" экспроприируется и национализируется на просторах интернета, если проблематично, по метрикам более-менее подходят всякие Times-подобные, например, мой любимый FreeSerif (ttf-вариант обычно есть в репах/портежах дистрибутива, otf - в TexLive).

Для шрифтов может понадобиться пакет extrafont

Можно сохранить как отдельную тему, но мне всегда было лень.
С применением этой темы редакторы/верстальщики Известий РАН (серия биологическая) практически перестали издеваться над моими графиками ;-)

ЗЫ: Извинямс за замедленную реакцию, весь в литературе по поводу своего последнего вопроса.

ЗЗЫ: Есть ещё .rmd .tex шаблоны для ИзвРАН сер.биол., preprint - чтобы прикинуть, как оно будет смотреться, если возьмут, man - для распечатки в редакцию (задолбало вручную библиографию править). Если надо, могу выложить.

This post has been edited by Ulvhare: 01.02.2019 20:42

Number of thanks: 1These members thanked the author (1): plantago
User is offline! Алекс3212




 old post 08.02.2019 22:47     Report Post  Report Post for topic curator       Personal message  Send an e-mail

(bf109xxl @ 27.01.2019 17:35)
Link to the original post  Убрать вот это:
CODE
Timestat$time <- as.factor(Timestat$time)

Зачем оно вообще понадобилось?  confused.gif


Да вы правы, оно оказалось незачем, вот код с которым я получил то, что нужно по порядку.

ggplot(Timestat1, aes(x=Tim1, y=ff))+
geom_bar(stat = "identity") +
        xlab("Часы") + ylab("Количество ф.н.")


Пока у меня мало знаний в R и часть пробелов, если я не знаю как, я заполняю опытным путем в том числе и с других задач используя части кода. Это конечно не по "научному" и приводит вот к таким нелепым ошибкам, но зато довольно быстро и практично, когда нет времени на работе.

На счет предыдущего ответа, пока не понял с ходу, но спасибо за ответ, буду разбираться используя ваш комм-ий

This post has been edited by Алекс3212: 08.02.2019 22:54
User is offline! bf109xxl
Member



 old post 18.02.2019 23:54     Report Post  Report Post for topic curator       Personal message  Send an e-mail

(Ulvhare @ 01.02.2019 19:36)
Link to the original post С применением этой темы редакторы/верстальщики Известий РАН (серия биологическая) практически перестали издеваться над моими графиками ;-)

Я слегка не просекаю, а что верстальщик может сделать с графиком-то? Оные должны воспроизводиться без каких-либо манипуляций со шрифтами и прочим. Я не в курсе, конечно, какие порядки в ИзвРАНе, но до сих пор с подобным волюнтаризьмом в "буржуйских" научных журналах сталкиваться не доводилось.

ЗЫ. Для научной публикации я бы забацал темплату в Origin-е. wink.gif В нем теперь доступны вставки LaTeX-формул и есть интерфейс с R. Чем я активно пользуюсь - это чтобы не обвинили в офф-топике. В общем, почти идеал системы для сложной интерактивной обработки и визуализации не очень больших данных получается... smile.gif
User is offline! plantago
Advanced Member



 old post 19.02.2019 00:57     Report Post  Report Post for topic curator       Personal message  Send an e-mail  Web site

> Для научной публикации я бы забацал темплату в Origin-е

А я бы не. Как я в 2010 году решил сократить до минимума использование проприетарного софта, так с тех пор и живу практически без всех этих штучек. Даже честно купленным фотошопом пользоваться перестал. Но публикуюсь как-то. Use R! wink.gif
User is offline! bf109xxl
Member



 old post 19.02.2019 01:48     Report Post  Report Post for topic curator       Personal message  Send an e-mail

(plantago @ 18.02.2019 23:57)
Link to the original post  Как я в 2010 году решил сократить до минимума использование проприетарного софта, так с тех пор и живу практически без всех этих штучек.

А зачем сокращать использование проприетарного софта, если оный упрощает и ускоряет работу? Не понимаю... Экономия на спичках...
Use R!

Так R я и в Origin использую smile.gif Либо через встроенную спец-консоль, либо через специальный объект LabTalk-а - о чем и речь была, собственно.
User is offline! plantago
Advanced Member



 old post 19.02.2019 09:04     Report Post  Report Post for topic curator       Personal message  Send an e-mail  Web site

> Экономия на спичках...
Это не экономия, а принцип. Pickwick and principle! smile.gif А вообще почитайте Столлмана, если еще не. Впрочем, все это почти оффтопик.
User is offline! bf109xxl
Member



 old post 19.02.2019 10:56     Report Post  Report Post for topic curator       Personal message  Send an e-mail

(plantago @ 19.02.2019 08:04)
Link to the original postЭто не экономия, а принцип

Я такие принципы не вполне понимаю. Точнее, я понимаю там, где это оправдано, а в данном случае (п/о преимущественно для научных задач) - скорее, это вредный принцип. Есть немало проприетарных программ, которые невозможно заменить фришным (ок, GNU и т.п.) софтом без [сильной] потери в качестве. Что для меня гораздо принципиальнее.

Я за плюрализм. smile.gif
User is offline! PS2004R
Advanced Member



 old post 19.02.2019 11:10     Report Post  Report Post for topic curator       Photo  Personal message  Send an e-mail  Web site

(bf109xxl @ 19.02.2019 10:56)
Link to the original post  
Я за плюрализм. smile.gif


За тролоо скорее smile.gif

Number of thanks: 1These members thanked the author (1): plantago
User is offline! bf109xxl
Member



 old post 19.02.2019 11:20     Report Post  Report Post for topic curator       Personal message  Send an e-mail

(PS2004R @ 19.02.2019 10:10)
Link to the original post  За тролоо скорее smile.gif

Это по вашей части. Тут вы спицыялизд, адназначна.
User is offline! plantago
Advanced Member



 old post 19.02.2019 12:53     Report Post  Report Post for topic curator       Personal message  Send an e-mail  Web site

Переменим тему smile.gif

Помянутый разными словами выше Wickham написал (еще в прошом году, а сегодня обновил) очень правильный пакет -- https://cran.r-project.org/web/packages/ellipsis/index.html

Очень уж неприятная проблема время от времени возникает из-за троеточия, в этом треде были примеры. Кажется, этот пакет решает проблему хотя бы частично.
User is offline! PS2004R
Advanced Member



 old post 21.02.2019 18:34     Report Post  Report Post for topic curator       Photo  Personal message  Send an e-mail  Web site

(plantago @ 19.02.2019 12:53)
Link to the original post  Переменим тему smile.gif

Помянутый разными словами выше Wickham написал (еще в прошом году, а сегодня обновил) очень правильный пакет -- https://cran.r-project.org/web/packages/ellipsis/index.html

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


Это хорошо когда писатели пакетов используют. Но они будут крайне недовольны появлением такой функции в виде зависимости от стороннего пакета. Такое автору надо предлагать в {base}.
User is offline! plantago
Advanced Member



 old post 22.02.2019 00:17     Report Post  Report Post for topic curator       Personal message  Send an e-mail  Web site

Он так и пишет. Надеюсь, добавят. Скажем, как опцию.
User is offline! Den-N
Advanced Member



 old post 15.03.2019 09:30     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Помогите, пожалуйста, решить проблему с пакетом qgraph. При построении коррелограммы для одного конкретного набора данных строит ерунду. Подозреваю, что это может быть связано с каким-то глюком при обработке почти нулевой корреляции между Fe и Mn. Для других опробованных наборов данных всё выглядит должным образом: толщина и интенсивность окраски линий пропорциональны коэффициенту корреляции в жёстко заданном диапазоне 0...1, зелёные - положительные, красные - отрицательные. Пробовал округлять коэффициенты корреляции (round ()) не помогло. Как решить проблему?
Прикрепил вордовский файл с данными (проблемный и беспроблемный датасет) и кодом R.

PS
А может и не с нулевой корреляцией связано:
corMat1<-round(corMat, digits=3) #округлил значения в матрице корреляций
corMat<- replace(corMat1, corMat1==0, 0.001) # заменил вручную ноль на 0,001
В результате имею такой же некорректный график с одинаковыми линиями. Пакет неверно толщину рёбер считает:
> Graph_pcor
From To Weight
1 --- 2 0.83
1 --- 3 -0.89
2 --- 3 0.85
1 --- 4 0.9
2 --- 4 -0.92
3 --- 4 0.96
1 --- 5 -0.77
2 --- 5 0.8
3 --- 5 -0.86
4 --- 5 0.89
1 --- 6 0.86
2 --- 6 -0.83
3 --- 6 0.97
4 --- 6 -0.95
5 --- 6 0.9
1 --- 7 -0.88
2 --- 7 0.87
3 --- 7 -0.87
4 --- 7 0.92
5 --- 7 -0.8
6 --- 7 0.89
>

This post has been edited by Den-N: 15.03.2019 10:48

Attached File(s)

Download attachment Problem_in_qgraph.doc
Size:: 120k
Number of downloads: 9


User is offline! PS2004R
Advanced Member



 old post 15.03.2019 10:50     Report Post  Report Post for topic curator       Photo  Personal message  Send an e-mail  Web site

А если сделать так?

qgraph(corMat, graph= "pcor", layout="circle", minimum=0.01, maximum=1)
User is offline! Den-N
Advanced Member



 old post 15.03.2019 10:59     Report Post  Report Post for topic curator       Personal message  Send an e-mail

(PS2004R @ 15.03.2019 13:50)
Link to the original post  А если сделать так?
qgraph(corMat, graph= "pcor", layout="circle", minimum=0.01, maximum=1)

Благодарю за помощь! Сам нашёл ошибку в коде. Помогло ?qgraph smile.gif ))
В коде нужно не graph= "pcor", а graph= "cor"
Иначе строит частные (partial) корреляции, а с ними непонятно что вообще выходит

This post has been edited by Den-N: 15.03.2019 11:24
guest: ivan
IP-stamp: fr0dFkPJ4Kizg
guest



 old post 02.05.2019 18:02     Report Post  Report Post for topic curator     

Подскажите, пожалуйста, кто-нибудь сталкивался с реализацией алгоритма Дейкстры в R. Нужна помощь!

Number of thanks: 1These members thanked the author (1): PS2004R
User is offline! PS2004R
Advanced Member



 old post 02.05.2019 18:38     Report Post  Report Post for topic curator       Photo  Personal message  Send an e-mail  Web site

(guest: ivan @ 02.05.2019 18:02)
Link to the original post  Подскажите, пожалуйста, кто-нибудь сталкивался с реализацией алгоритма Дейкстры в R. Нужна помощь!


Это пакет igraph
User is offline! mytarmail
Member



 old post 16.06.2019 17:05     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Здравствуйте!
Подскажите пожалуйста как строятся такие графики в анализе главных компонент

РИС
На сколько я понял там как то сравниваеться кф. корреляции между двумя векторами но как я не знаю, может кто то показать кодом как строить такие графики

This post has been edited by mytarmail: 16.06.2019 17:06
User is offline! ПолинаШ
Member



 old post 21.06.2019 19:12     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Есть нелинейная функция F от m переменных. Нужно найти m функций частных производных dF/dxi (точнее максимальное значение этих производных на интервале ximin - ximax).
Что-нибудь есть похожее в R или дифференцировать вручную?
User is offline! plantago
Advanced Member



 old post 23.06.2019 03:42     Report Post  Report Post for topic curator       Personal message  Send an e-mail  Web site

https://cran.r-project.org/web/packages/Deriv/ не подходит?

Number of thanks: 1These members thanked the author (1): ПолинаШ
User is offline! d-taras




 old post 13.08.2019 21:39     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Помогите, пожалуйста, разобраться с сортировкой значений.
Есть очень большая таблица вида
CODE

      ID;                    X;                                        Y;                wateronly06
       1;329449.0902600000;5671886.0910999998;0.6234206557
       7;329509.0628400000;5671886.0910999998;0.0150682973
       8;329519.0582700000;5671886.0910999998;0.0000000000
76099;326440.4658800000;5673185.4970000004;-0.0079722088


Её надобно разбить на 7 самостоятельных таблиц с интервалом - до 0; 0; >0 &<0.2; и т.д. до 0,8-1,0

Делаю
CODE
tab_00 <- subset(tab_0, wateronly06 = 0, select=c(X, Y, wateronly06)) ]

Получаю
CODE
Ошибка: неожиданный '=' in "tab_0 <- subset(tab, tab$wateronly06 ="

С чем это связано?
Причем остальные формулы сортировки работают
CODE
tab_00 <- subset(tab, tab$wateronly06 <0, decreasing=T, select=c(X, Y, wateronly06))
tab_02 <- subset(tab, Tab$wateronly06 > 0 & wateronly06 < 0.2, select=c(X, Y, wateronly06))

И вторая просьба. Как оформить сортировку дабы запускалась одной командой. Таких файлов будет не один или два.

This post has been edited by d-taras: 16.08.2019 14:32
User is offline! ПолинаШ
Member



 old post 19.08.2019 14:59     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Сижу на даче и забавляюсь со стареньким нетбуком, где стоит Win XP и среда R3.4.0.
После установки из дурного любопытства одного из ненужных пакетов (tidyverse) перестала загружаться библиотека ggplot2 и пакеты с ней связанные (тот же caret)

> library(ggplot2)
Error in readRDS(pfile) :
cannot read workspace version 3 written by R 3.6.1; need R 3.5.0 or newer

Пробовала установить R-3.6.1-win.exe - не получается (якобы "не является приложением Win32"). Граната перестала быть нужной системы.
Пробовала переустановить ggplot2 - не получается, т.к. не найду нужного zipА.
Есть вариант - выкинуть нетбук. А есть что-нибудь либеральнее?
User is offline! plantago
Advanced Member



 old post 20.08.2019 10:52     Report Post  Report Post for topic curator       Personal message  Send an e-mail  Web site

> не найду нужного zipА.

А тут? https://cran.r-project.org/bin/windows/contrib/3.4/
Или даже https://cran.r-project.org/bin/windows/contrib/3.3/
User is offline! ПолинаШ
Member



 old post 20.08.2019 16:00     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Нет, болезнь как-то глубже. Понижение версии ggplot2 привела к аналогичному результату (т.е. библиотека не загружается).
Об этой ошибке идет обсуждение в инет, например
https://community.rstudio.com/t/cannot-read...-or-newer/33395
Но мой браузер эту страницу открывать не хочет ("Ошибка при установлении защищённого соединения"). А кстати, как с эти бороться?
Но конкретной рекомендации нет.
User is offline! plantago
Advanced Member



 old post Post on English  21.08.2019 11:43     Report Post  Report Post for topic curator       Personal message  Send an e-mail  Web site

https://stackoverflow.com/questions/6473831/readrdsfile-in-r
User is offline! bf109xxl
Member



 old post 25.09.2019 14:04     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Снова о векторизации. Как правильно (т.е., без использования for()) оформить следующее:

CODE
for (id in df$id) {
 df$x <- min(df$id[df$a == df$a[df$id == id] & df$b == df$b[df$id == id]])
}


?

Т.е., в колонку x таблицы df должно заноситься минимальное значение колонки id из всех строк c одинаковыми значениями колонок a и b.

Буду признателен за подсказку.

This post has been edited by bf109xxl: 25.09.2019 14:46
Guest
IP-stamp: frN3LPP7lqWa2
guest



 old post 25.09.2019 15:59     Report Post  Report Post for topic curator     

(bf109xxl @ 25.09.2019 14:04)
Link to the original post  
Т.е., в колонку x таблицы df должно заноситься минимальное значение колонки id из всех строк c одинаковыми значениями колонок a и b.

Буду признателен за подсказку.


CODE


> tapply(df[df$a==df$b,]$id, df[df$a==df$b,]$a , max, simplify = F )
$`1`
[1] 1

$`2`
[1] 3

> tapply(df[df$a==df$b,]$id, df[df$a==df$b,]$a , min, simplify = F )
$`1`
[1] 1

$`2`
[1] 2

> df
  id a  b
1   1 1  1
2   2 2  2
3   3 2  2
4   4 3  6
5   5 4  8
6   6 5 10
7   7 6 12
8   8 7 14
9   9 8 16
10 10 9 18

User is offline! DSV2015




 old post 10.10.2019 08:27     Report Post  Report Post for topic curator       Personal message  Send an e-mail

Нужно применить к вектору 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
User is offline! PS2004R
Advanced Member



 old post 10.10.2019 10:02     Report Post  Report Post for topic curator       Photo  Personal message  Send an e-mail  Web site

(DSV2015 @ 10.10.2019 08:27)
Link to the original post  Нужно применить к вектору 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


Number of thanks: 1These members thanked the author (1): plantago
User is offline! DSV2015




 old post 11.10.2019 10:20     Report Post  Report Post for topic curator       Personal message  Send an e-mail

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

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

sapply(a, ..... ?                   # исполняемый блок
User is offline! PS2004R
Advanced Member



 old post 11.10.2019 10:37     Report Post  Report Post for topic curator       Photo  Personal message  Send an e-mail  Web site

(DSV2015 @ 11.10.2019 10:20)
Link to the original post  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



This post has been edited by PS2004R: 11.10.2019 17:56

Number of thanks: 2These members thanked the author (2): DSV2015, plantago
User is offline! DSV2015




 old post 12.10.2019 10:31     Report Post  Report Post for topic curator       Personal message  Send an e-mail

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))
User is offline! PS2004R
Advanced Member



 old post 12.10.2019 12:01     Report Post  Report Post for topic curator       Photo  Personal message  Send an e-mail  Web site

(DSV2015 @ 12.10.2019 10:31)
Link to the original post  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

User is offline! DSV2015




 old post 12.10.2019 12:40     Report Post  Report Post for topic curator       Personal message  Send an e-mail

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

*





Name:

 Enable Smilies · Show Smilies Pop Up Window
Icons designation:

   Say THANKS to the author — say THANKS to the author
   Delete Post — delete
   Edit Post — edit
   Put in the news column — put in the news column
   Quote Post — quote the post
   multiquote  not included/multiquote included — quote several posts
   Report SPAM — mark spam message
   Report Post — report post to the moderator
   User is online!/User is offline! — author online/offline
   Photo — photo of the author

   - other designations -
 
   *
« Next Oldest · Biophysics and math-methods in biology · Next Newest »
pages (53): « < 50 51 52 53 >
Fast ReplyReply to this topicStart new topic

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

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

Helicon · Dia-m · InterLabService · Beckman Coulter · SkyGen · OPTEC · BIOCAD · Evrogen · Syntol · Bioline · Sartorius · Khimexpert · SibEnzyme · Tecan · Danies · NPP «TRIS» · Bialexa · FizLabPribor · Genotek · ATG Service Gene · Biogen-Analitika
Your forum  ·  editor@zbio.net  ·  Time is now: 18.10.19 22:46
Bridged By IpbWiki: Integration Of Invision Power Board and MediaWiki © GlobalSoft