Nano Hash - криптовалюты, майнинг, программирование

Несколько диаграмм в R из немаркированной матрицы?

Проблема

У меня есть матрица R с некоторыми данными, созданными компьютерной программой. Я настроил данные для импорта в R в виде матрицы. Имеется четное число столбцов, причем столбец (2*i, 2*i+1) содержит две переменные, измеряемые при условии i. Я сделал визуализацию этого ниже, и как я пытаюсь создать блок-сюжет:

введите здесь описание изображения


Попытки

К сожалению, у столбцов нет меток или чего-то подобного, и я не уверен, как получить несколько диаграмм в случае, когда у меня есть два столбца, представляющие разные метки в этом формате.

Я попытался адаптировать этот отличный вопрос для работы, но с учетом его столбцов фактически представляют собой комбинированную версию пар (A, B), которые вы видите на моей диаграмме со столбцом метки, я не уверен, как переработать его для моего случая.


Вот что у меня есть до сих пор, но группировки нет и нет категорий:

введите здесь описание изображения

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

24.01.2021

Ответы:


1

Вы можете подмножить данные по вектору условий.

(cond <- rep(LETTERS[1:2], ncol(d)/2))
# [1] "A" "B" "A" "B" "A" "B" "A" "B" "A" "B" "A" "B" "A" "B" "A" "B" "A" "B"

boxplot(d, boxfill=NA, border=NA, xaxt="n", xlim=c(0, 17.75),   ## initialize plot
        xlab="index", ylab="value", main="My plot")
boxplot(d[cond == "A"], xaxt="n", add=TRUE, boxfill=2,  ## subset A
        boxwex=0.35, at=which(cond == "A") - .25)
boxplot(d[cond == "B"], xaxt="n", add=TRUE, boxfill=4,  ## subset B
        boxwex=0.35, at=which(cond == "A") + .25)
## axis
axis(1, seq(ncol(d))[(seq(ncol(d)) + 1) %% 2 == 0], labels=1:(ncol(d)/2))
## optional legend
legend("topleft", leg=cond[1:2], pch=22, pt.bg=c(2, 4), col=1, bty="n")

введите здесь описание изображения


Данные:

d <- read.csv("https://gist.githubusercontent.com/Micrified/4bb8c392300998e99320bf5ec3ba3d01/raw/765baf87f8fe40ccd58c145d49a3c21ee6009de5/data.csv")
24.01.2021

2

Вам нужно будет преобразовать ваши данные из матрицы во фрейм данных и каким-то образом извлечь информацию о группах (i) и первом/втором столбце в каждой группе.

Возможное решение:

library(tidyverse) # we'll use dplyr, ggplot2 and purrr
i = 3
n_cols_per_i = 2
mat <- matrix(1:(i*n_cols_per_i*9), ncol=n_cols_per_i * i)
# 3*2 columns of 9 values each

name_fn <- function(group, col){
  paste0('group_', group, '_col_', col)
}

colnames(mat) <- map2_chr(rep(1:i,n_cols_per_i), rep(c("A", "B"), i), name_fn)

df <- as_tibble(mat)

df <- df %>% pivot_longer(
  cols=everything(),
  names_to = c("group", "col"),
  names_pattern = "group_(.)_col_(.)"
  )

df %>% ggplot(aes(y=value, x=group, fill=col)) +
  geom_boxplot()

введите здесь описание изображения

df будет иметь такую ​​структуру, что вы также сможете применять другие графики из связанного вопроса аналогичным образом.

24.01.2021
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..