Лучше сделать с outer
.Поскольку мы проверяем, совпадают ли все значения во втором столбце с самим собой, создайте логическое выражение с outer
, преобразуйте его в числовой индекс и затем замените значения на 1 или 100
out <- 1 + (outer(datax[,2], datax[,2], `==`))
out[] <- c(1, 100)[out]
* 1006.* Или в одной строке
ifelse(outer(datax[,2], datax[,2], `==`), 100, 1)
Или используйте вариант с pmax
и outer
do.call(pmax, list(outer(datax[,2], datax[,2], `==`) * 100, 1))