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

Найдите неперекрывающиеся значения из двух таблиц в R

У меня есть две таблицы:

library(data.table)
Input<-data.table("Date"=seq(1:10),"Cycle"=c(90,100,130,180,200,230,250,260,300,NA))
Date Cycle
 1:    1    90
 2:    2   100
 3:    3   130
 4:    4   180
 5:    5   200
 6:    6   230
 7:    7   250
 8:    8   260
 9:    9   300
10:   10   320
 FDate<-data.table("Date"=seq(1:9),"Cycle"=c(90,100,130,180,200,230,250,260,300),"Task"=c("D","A","B,C",NA,"A,D","D","C","D","A,C,D"))
   Date Cycle  Task
1:    1    90     D
2:    2   100     A
3:    3   130   B,C
4:    4   180  <NA>
5:    5   200   A,D
6:    6   230     D
7:    7   250     C
8:    8   260     D
9:    9   300 A,C,D

Я просто хочу иметь таблицу вывода с неперекрывающимися Date и соответствующими Cycle. Я пробовал с setdiff, но это не сработало. Я ожидаю такого результата

Date  Cycle
 10     320

Когда я попробовал это setdiff(FDate$Date,Input$Date), оказалось, что integer(0)

23.07.2019

  • Я не знаю data.table достаточно хорошо, чтобы сказать наверняка, но, похоже, связан с этим сообщением, которое дает несколько вариантов 23.07.2019

Ответы:


1

Мы можем использовать fsetdiff из data.table, включив только общие столбцы в оба набора данных

fsetdiff(Input, FDate[ , names(Input), with = FALSE])
#   Date Cycle
#1:   10   320

Или соединение, как упомянул @Frank

Input[!FDate, on=.(Date)]
#   Date Cycle
#1:   10   320

В коде OP

setdiff(FDate$Date,Input$Date)

первый аргумент взят из столбца «Дата» из «FDate». Все элементы в этом столбце также находятся в основных данных «Input $ Date». Итак, он возвращает integer(0)). Если мы сделаем обратное, он вернет 10

23.07.2019
  • С антисоединением: Input[!FDate, on=.(Date)] при условии, что дата без перекрытия достаточна, или Input[!FDate, on=.(Date, Cycle)] 23.07.2019
  • Новые материалы

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

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

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

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

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

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

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