Я думаю, вы не понимаете, как работает подмножество в R. unique(x[,1])
вернет набор уникальных значений в первом столбце. Если вы затем попытаетесь подмножество , используя эти значения, R подумает, что вы ссылаетесь на строк матрицы. Таким образом, вы, вероятно, получаете NA, потому что значения относятся к строкам, которых нет в матрице.
Ваша вторая попытка идет вразрез с фактом, что duplicated
возвращает логический вектор , а не вектор индексов. Таким образом, размещение знака минус перед ним преобразует его в вектор из 0 и -1, который снова R интерпретирует как попытку обратиться к строкам.
Попробуйте заменить '-' на '!' перед duplicated
, который является оператором логического отрицания. Примерно так:
m <- matrix(runif(100),10,10)
m[c(2,5,9),1] <- 1
m[!duplicated(m[,1]),]