Ответ 1
Я думаю, вы запутались в том, как подмножество работает в 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]),]