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

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


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



Форум: 
 

Щёлкните, чтобы внести в Избранные Темы* R Help -- Давайте составим русский FAQ --
Кураторы темы:* plantago
Операции: Хочу стать куратором* · Подписаться на тему* · Отправить страницу по e-mail · Версия для печати*
Внешний вид:* Схема · [ Стандартный ] · +Перв.сообщ.


Добавить сообщение в темуСоздать новую темуСоздать голосование
Участник оффлайн! bf109xxl
Участник



 прочитанное сообщение 12.01.2019 20:55     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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

Всего благодарностей: 2Поблагодарили (2): Ulvhare, Алекс3212
Участник оффлайн! plantago
Постоянный участник



 прочитанное сообщение 12.01.2019 21:43     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail  Web-адрес

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

Всего благодарностей: 1Поблагодарили (1): Алекс3212
Участник оффлайн! Ulvhare




 прочитанное сообщение 13.01.2019 11:54     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить 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" - это хорошая идея.

Всего благодарностей: 1Поблагодарили (1): plantago
Участник оффлайн! Алекс3212




 прочитанное сообщение 13.01.2019 20:41     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

(bf109xxl @ 11.01.2019 14:12)
Ссылка на исходное сообщение  
CODE
ggplot(Weather.1,
         aes(x = <Date column name>,
               y = Prod,
               fill = Weath)) +
 geom_bar(stat = "identity")




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




 прочитанное сообщение 13.01.2019 20:45     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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


За ссылку на книгу, отдельная благодарность. Как раз искал что то по ggplot
Участник оффлайн! plantago
Постоянный участник



 прочитанное сообщение 14.01.2019 20:27     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail  Web-адрес

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

Всего благодарностей: 3Поблагодарили (3): PS2004R, bf109xxl, Ulvhare
Участник оффлайн! bf109xxl
Участник



 прочитанное сообщение 15.01.2019 00:01     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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

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




 прочитанное сообщение 15.01.2019 12:08     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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

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



 прочитанное сообщение 15.01.2019 18:58     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail  Web-адрес

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



 прочитанное сообщение 20.01.2019 15:45     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить 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
Участник оффлайн! ПолинаШ
Участник



 прочитанное сообщение 20.01.2019 20:52     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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


Всего благодарностей: 2Поблагодарили (2): plantago, PS2004R
Участник оффлайн! Алекс3212




 прочитанное сообщение 24.01.2019 14:34     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить 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("Количество ф.н.")

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

Сообщение было отредактировано Алекс3212 - 25.01.2019 09:33

Картинки:
картинка: Screenshot_1.png
Screenshot_1.png — (44.37к)   

картинка: Screenshot_3.png
Screenshot_3.png — (24.3к)   

Участник оффлайн! plantago
Постоянный участник



 прочитанное сообщение 24.01.2019 20:39     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail  Web-адрес

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




 прочитанное сообщение 27.01.2019 09:36     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

(plantago @ 24.01.2019 21:39)
Ссылка на исходное сообщение  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 и тд. По второму пациенту аналогично. Всем заранее спасибо за любую помощь.
Участник оффлайн! bf109xxl
Участник



 прочитанное сообщение 27.01.2019 16:15     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить 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)


Сообщение было отредактировано bf109xxl - 27.01.2019 19:07

Всего благодарностей: 1Поблагодарили (1): plantago
Участник оффлайн! bf109xxl
Участник



 прочитанное сообщение 27.01.2019 16:35     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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

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

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

Сообщение было отредактировано bf109xxl - 27.01.2019 16:35

Всего благодарностей: 2Поблагодарили (2): plantago, Алекс3212
Участник оффлайн! Ulvhare




 прочитанное сообщение 01.02.2019 20:36     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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


Малость перепутал, всё-таки на основе 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 - для распечатки в редакцию (задолбало вручную библиографию править). Если надо, могу выложить.

Сообщение было отредактировано Ulvhare - 01.02.2019 20:42

Всего благодарностей: 1Поблагодарили (1): plantago
Участник оффлайн! Алекс3212




 прочитанное сообщение 08.02.2019 22:47     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

(bf109xxl @ 27.01.2019 17:35)
Ссылка на исходное сообщение  Убрать вот это:
CODE
Timestat$time <- as.factor(Timestat$time)

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


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

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


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

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

Сообщение было отредактировано Алекс3212 - 08.02.2019 22:54
Участник оффлайн! bf109xxl
Участник



 прочитанное сообщение 18.02.2019 23:54     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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

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

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



 прочитанное сообщение 19.02.2019 00:57     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail  Web-адрес

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

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



 прочитанное сообщение 19.02.2019 01:48     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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

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

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



 прочитанное сообщение 19.02.2019 09:04     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail  Web-адрес

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



 прочитанное сообщение 19.02.2019 10:56     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

(plantago @ 19.02.2019 08:04)
Ссылка на исходное сообщениеЭто не экономия, а принцип

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

Я за плюрализм. smile.gif
Участник оффлайн! PS2004R
Постоянный участник



 прочитанное сообщение 19.02.2019 11:10     Сообщение для модератора  Сообщение для куратора темы       Фотография  Личное письмо  Отправить e-mail  Web-адрес

(bf109xxl @ 19.02.2019 10:56)
Ссылка на исходное сообщение  
Я за плюрализм. smile.gif


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

Всего благодарностей: 1Поблагодарили (1): plantago
Участник оффлайн! bf109xxl
Участник



 прочитанное сообщение 19.02.2019 11:20     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

(PS2004R @ 19.02.2019 10:10)
Ссылка на исходное сообщение  За тролоо скорее smile.gif

Это по вашей части. Тут вы спицыялизд, адназначна.
Участник оффлайн! plantago
Постоянный участник



 прочитанное сообщение 19.02.2019 12:53     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail  Web-адрес

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

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

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



 прочитанное сообщение 21.02.2019 18:34     Сообщение для модератора  Сообщение для куратора темы       Фотография  Личное письмо  Отправить e-mail  Web-адрес

(plantago @ 19.02.2019 12:53)
Ссылка на исходное сообщение  Переменим тему smile.gif

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

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


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



 прочитанное сообщение 22.02.2019 00:17     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail  Web-адрес

Он так и пишет. Надеюсь, добавят. Скажем, как опцию.
Участник оффлайн! Den-N
Постоянный участник



 прочитанное сообщение 15.03.2019 09:30     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить 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
>

Сообщение было отредактировано Den-N - 15.03.2019 10:48

Файл/ы:

скачать файл Problem_in_qgraph.doc
размер: 120к
кол-во скачиваний: 9


Участник оффлайн! PS2004R
Постоянный участник



 прочитанное сообщение 15.03.2019 10:50     Сообщение для модератора  Сообщение для куратора темы       Фотография  Личное письмо  Отправить e-mail  Web-адрес

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

qgraph(corMat, graph= "pcor", layout="circle", minimum=0.01, maximum=1)
Участник оффлайн! Den-N
Постоянный участник



 прочитанное сообщение 15.03.2019 10:59     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

(PS2004R @ 15.03.2019 13:50)
Ссылка на исходное сообщение  А если сделать так?
qgraph(corMat, graph= "pcor", layout="circle", minimum=0.01, maximum=1)

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

Сообщение было отредактировано Den-N - 15.03.2019 11:24
guest: ivan
IP-штамп: fr0dFkPJ4Kizg
гость



 прочитанное сообщение 02.05.2019 18:02     Сообщение для модератора  Сообщение для куратора темы     

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

Всего благодарностей: 1Поблагодарили (1): PS2004R
Участник оффлайн! PS2004R
Постоянный участник



 прочитанное сообщение 02.05.2019 18:38     Сообщение для модератора  Сообщение для куратора темы       Фотография  Личное письмо  Отправить e-mail  Web-адрес

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


Это пакет igraph
Участник оффлайн! mytarmail
Участник



 прочитанное сообщение 16.06.2019 17:05     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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

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

Сообщение было отредактировано mytarmail - 16.06.2019 17:06
Участник оффлайн! ПолинаШ
Участник



 прочитанное сообщение 21.06.2019 19:12     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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



 прочитанное сообщение 23.06.2019 03:42     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail  Web-адрес

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

Всего благодарностей: 1Поблагодарили (1): ПолинаШ
Участник оффлайн! d-taras




 прочитанное сообщение 13.08.2019 21:39     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить 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))

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

Сообщение было отредактировано d-taras - 16.08.2019 14:32
Участник оффлайн! ПолинаШ
Участник



 прочитанное сообщение 19.08.2019 14:59     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить 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А.
Есть вариант - выкинуть нетбук. А есть что-нибудь либеральнее?
Участник оффлайн! plantago
Постоянный участник



 прочитанное сообщение 20.08.2019 10:52     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail  Web-адрес

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

А тут? https://cran.r-project.org/bin/windows/contrib/3.4/
Или даже https://cran.r-project.org/bin/windows/contrib/3.3/
Участник оффлайн! ПолинаШ
Участник



 прочитанное сообщение 20.08.2019 16:00     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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



 прочитанное сообщение Сообщение на английском  21.08.2019 11:43     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail  Web-адрес

https://stackoverflow.com/questions/6473831/readrdsfile-in-r
Участник оффлайн! bf109xxl
Участник



 прочитанное сообщение 25.09.2019 14:04     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить 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.

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

Сообщение было отредактировано bf109xxl - 25.09.2019 14:46
Guest
IP-штамп: frN3LPP7lqWa2
гость



 прочитанное сообщение 25.09.2019 15:59     Сообщение для модератора  Сообщение для куратора темы     

(bf109xxl @ 25.09.2019 14:04)
Ссылка на исходное сообщение  
Т.е., в колонку 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

Участник оффлайн! DSV2015




 прочитанное сообщение 10.10.2019 08:27     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить 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
Участник оффлайн! PS2004R
Постоянный участник



 прочитанное сообщение 10.10.2019 10:02     Сообщение для модератора  Сообщение для куратора темы       Фотография  Личное письмо  Отправить e-mail  Web-адрес

(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


Всего благодарностей: 1Поблагодарили (1): plantago
Участник оффлайн! DSV2015




 прочитанное сообщение 11.10.2019 10:20     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить e-mail

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

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

sapply(a, ..... ?                   # исполняемый блок
Участник оффлайн! PS2004R
Постоянный участник



 прочитанное сообщение 11.10.2019 10:37     Сообщение для модератора  Сообщение для куратора темы       Фотография  Личное письмо  Отправить e-mail  Web-адрес

(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



Сообщение было отредактировано PS2004R - 11.10.2019 17:56

Всего благодарностей: 2Поблагодарили (2): DSV2015, plantago
Участник оффлайн! DSV2015




 прочитанное сообщение 12.10.2019 10:31     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить 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))
Участник оффлайн! PS2004R
Постоянный участник



 прочитанное сообщение 12.10.2019 12:01     Сообщение для модератора  Сообщение для куратора темы       Фотография  Личное письмо  Отправить e-mail  Web-адрес

(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 12:40     Сообщение для модератора  Сообщение для куратора темы       Личное письмо  Отправить 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

*




Кнопка "Транслит" перекодирует
текст из транслита в кирилицу.
Правила перекодировки здесь;
текст в квадратных скобках'[]'
не преобразуется.
Имя:

 преобразовывать смайлики · показать смайлики
Назначение кнопок:

   Поблагодарить автора сообщения — поблагодарить автора
   Удалить сообщение — удалить
   Редактировать сообщение — редактировать
   Поместить сообщение в колонку новостей — поместить в колонку новостей
   Цитировать — цитировать сообщение
   не входит в цитирование/входит в цитирование — цитировать несколько
   Отметить СПАМ-сообщение — обозначить спам
   Сообщение для модератора — связь с модератором
   Участник онлайн!/Участник оффлайн! — автор онлайн/оффлайн
   Фотография — фотография автора

   - остальные обозначения -
 
   *
« Предыдущая тема · Биофизика и матметоды в биологии · Следующая тема »
Быстрый ответДобавить сообщение в темуСоздать новую тему

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

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

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