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

несколько (нечетные номера строк) CSV-файлов в матрицу в R

В целом я хочу сделать тепловую карту в R, используя gplots. Поэтому мне нужно объединить файлы csv в матрицу. Я пробовал разные попытки, но постоянно сталкивался с проблемой неравномерной длины строки.
Например, когда я попробовал этот подход из кода, который я получил

num.el <- sapply(a, length)
res <- cbind(unlist(a), rep(1:length(a), num.el))

я получаю сообщение об ошибке

  Error in structure(res, levels = lv, names = nm, class = "factor") : 
  'names' attribute [24] must be the same length as the vector [2]

У меня есть более 40 CSV-файлов с нечетными номерами строк. Я включил два образца ниже

test1.csv

ark,
Actinocyclus actinochilus,7
Asterionella formosa,4
Aulacodiscus orientalis,1
Aulacoseira granulata,3
Chaetoceros radicans,1
Corethron hystrix,6
Coscinodiscaceae,1
Dactyliosolen fragilissimus,32
Diadesmis gallica,1
Diatoma hyemalis,1
Synedropsis hyperboreoides,4
Trigonium formosum,4
Urosolenia eriensis,2

test2.csv

ant,
Actinocyclus actinochilus,55
Asterionella formosa,3
Aulacoseira granulata,5
Chaetoceros radicans,7
Dactyliosolen fragilissimus,5
Diatoma hyemalis,5
Stephanopyxis turris,1
Striatella unipunctata,1
Synedropsis hyperboreoides,28
Trigonium formosum,3
Urosolenia eriensis,2

Как видите, имена совпадают, но файлы не совпадают в точности. Как лучше всего восполнить недостающие данные для построения тепловой карты?

14.12.2015

  • Вам нужно сохранить первую линию (ковчег, муравей и т. д. и т. д.)? 14.12.2015
  • Я отложил их на потом для тепловой карты. 14.12.2015

Ответы:


1

Проблема в том, что у вас есть только одна «строка» в первом столбце, поэтому R не знает, что делать с именами ваших данных.

Здесь мы создаем список всех файлов .csv в папке:

z <- list.files(pattern = ".*csv")

Затем прочитайте в каждом файле, используя readLines, затем используйте только 2:end данных для read.table и возьмите первую строку в качестве имени столбца:

data <- lapply(z, function(x) {temp <- readLines(x);
           read.table(text = temp[2:length(temp)], sep = ",", col.names = c("Species", temp[1]))})

Теперь ваши данные должны представлять собой список фреймов данных.

Я предполагаю, что вы хотите merge их:

Reduce(function(x, y) merge(x, y, all=TRUE), data)

Что дает мне следующее из ваших данных примера:

                       Species ark. ant.
1    Actinocyclus actinochilus    7   55
2         Asterionella formosa    4    3
3      Aulacodiscus orientalis    1   NA
4        Aulacoseira granulata    3    5
5         Chaetoceros radicans    1    7
6            Corethron hystrix    6   NA
7             Coscinodiscaceae    1   NA
8  Dactyliosolen fragilissimus   32    5
9            Diadesmis gallica    1   NA
10            Diatoma hyemalis    1    5
11  Synedropsis hyperboreoides    4   28
12          Trigonium formosum    4    3
13         Urosolenia eriensis    2    2
14        Stephanopyxis turris   NA    1
15      Striatella unipunctata   NA    1
14.12.2015
Новые материалы

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

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

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

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

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

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

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