Получение уникальных комбинаций [duplicate]

Если все остальное не удается, перекомпилируйте.

Недавно я смог избавиться от нерешенной внешней ошибки в Visual Studio 2012, просто перекомпилировав нарушивший файл. Когда я перестроил, ошибка исчезла.

Это обычно происходит, когда две (или более) библиотеки имеют циклическую зависимость. Библиотека A пытается использовать символы в B.lib и библиотеке B пытается использовать символы из A.lib. Ничего не существует для начала. Когда вы пытаетесь скомпилировать A, шаг ссылки завершится неудачно, потому что он не может найти B.lib. A.lib будет сгенерирован, но не будет dll. Затем вы компилируете B, который будет успешным и сгенерирует B.lib. Повторная компиляция A теперь будет работать, потому что теперь найден B.lib.

4
задан Nick Cox 4 February 2014 в 15:37
поделиться

2 ответа

Я бы заказал data.frame, в какой точке вы можете посмотреть на by:

mydata <- mydata[with(mydata, do.call(order, list(id, day, value))), ]

do.call(rbind, by(mydata, list(mydata$id, mydata$day), 
                  FUN=function(x) head(x, 1)))

В качестве альтернативы загляните в пакет «data.table». Продолжение с упорядоченным data.frame сверху:

library(data.table)

DT <- data.table(mydata, key = "id,day")
DT[, head(.SD, 1), by = key(DT)]
#     id day value
#  1:  1   1    10
#  2:  1   2    15
#  3:  1   3    20
#  4:  2   1    40
#  5:  2   2    30
#  6:  3   2    22
#  7:  3   3    24
#  8:  4   1    11
#  9:  4   2    11
# 10:  4   3    12

Или, начиная с нуля, вы можете использовать data.table следующим образом:

DT <- data.table(id, day, value, key = "id,day")
DT[, n := rank(value, ties.method="first"), by = key(DT)][n == 1]

И, в дополнение, в базе R:

Ranks <- with(mydata, ave(value, id, day, FUN = function(x) 
  rank(x, ties.method="first")))
mydata[Ranks == 1, ]
5
ответ дан A5C1D2H2I1M1N2O1R2T1 27 August 2018 в 06:10
поделиться

Пакет dplyr делает такие вещи проще.

library(dplyr)
mydata %>% group_by(id, day) %>% filter(row_number(value) == 1)

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

8
ответ дан Matthew 27 August 2018 в 06:10
поделиться
Другие вопросы по тегам:

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