список инфракрасных кодов? [закрытый]

Если я правильно понимаю, ОП хочет сгруппировать свои выборки, так что

  1. каждая группа содержит как можно больше выборок,
  2. каждая группа содержит только один отдельный элемент TagA и один отдельный элемент из TagB,
  3. выборок сохраняются в исходном порядке, насколько это возможно.

Приведенный ниже подход работает итеративно, помещая все выборки в одну группу, а затем ищет дубликаты (сверху вниз), которые помещаются в следующую группу. Это будет продолжаться до тех пор, пока не будет найдена группа с дубликатами.

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

library(data.table)
grouped <- as.data.table(preGroup)[order(SampleID)][, group := 1L][]
max_grp <- 1L
while (any(grouped[, anyDuplicated(TagA) | anyDuplicated(TagB), by = group]$V1)) {
  max_grp <- max_grp + 1L
  dups <- duplicated(grouped, by = c("group", "TagA")) | 
    duplicated(grouped, by = c("group", "TagB"))
  grouped[dups, group := max_grp][]
  stopifnot(max_grp <= nrow(grouped)) # just to prevent infinite looping
}
grouped
    SampleID  TagA  TagB group
 1:        1 Tag03 Tag10     1
 2:        2 Tag04 Tag06     1
 3:        3 Tag05 Tag07     1
 4:        4 Tag03 Tag09     2
 5:        5 Tag04 Tag10     2
 6:        6 Tag05 Tag06     2
 7:        7 Tag01 Tag06     3
 8:        8 Tag02 Tag07     2
 9:        9 Tag03 Tag08     3
10:       10 Tag01 Tag10     4
11:       11 Tag02 Tag06     4
12:       12 Tag03 Tag07     4
13:       13 Tag01 Tag08     5
14:       14 Tag03 Tag09     5
15:       15 Tag04 Tag10     5
16:       16 Tag01 Tag07     6
17:       17 Tag02 Tag08     6
18:       18 Tag03 Tag09     6
19:       19 Tag04 Tag10     6
blockquote>

Обратите внимание, что этот результат на одну группу меньше, чем выбранный OP postGroup, который содержит седьмую группу только с одной выборкой.

Мы можем выполнить некоторые проверки, чтобы проверить, что условие 2. выполнено:

grouped[, anyDuplicated(TagA), by = group]
   group V1
1:     1  0
2:     2  0
3:     3  0
4:     4  0
5:     5  0
6:     6  0
blockquote>
grouped[, anyDuplicated(TagB), by = group]
   group V1
1:     1  0
2:     2  0
3:     3  0
4:     4  0
5:     5  0
6:     6  0
blockquote>

Примечание

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

17
задан Simon Richter 11 March 2014 в 17:27
поделиться

3 ответа

LIRC имеет репозиторий кодов дистанционного контроллера, где можно найти коды для различных производителей инфракрасных пультов ДУ.

9
ответ дан 30 November 2019 в 14:21
поделиться

Что-то вроде этого? Если страница не загружается, просмотрите источник для других ссылок. Например, вот протокол Sony.

2
ответ дан 30 November 2019 в 14:21
поделиться

Для использования необработанного светодиода я сцепил бы фотодиод или фототранзистор к осциллографу, таким образом, Вы видите то, что отправляется. У меня создалось впечатление, что импульсы являются последовательными данными ASCII, никакой идеей о материале как скорость в бодах. Затем используйте PIC https://en.wikipedia.org/wiki/PIC_microcontrollers или Atmel в небольшом поле со светодиодом и батареей. Или встройте его в свое любимое кресло.

-1
ответ дан 30 November 2019 в 14:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: