Поскольку это место так благосклонно , я решил ответить на свой вопрос после прочтения ответа @ Lefkios-Paikousis. В реальной жизни при проведении факторного анализа мы имеем положительных результатов, а также отрицательных результатов, и нам необходимо поддерживать самое высокое значение с учетом его знака .
Например, -0,4 больше 0,2, и первое значение следует сохранить.
Следующий код, который я создал, чтобы выполнить то, что я хочу. Я надеюсь, что это помогает другим людям с параллельными вопросами.
library(tidyverse)
set.seed(123)
ds <- data.frame(x1 = runif(10,min = 0.1,0.29),x2 = runif(10,min = 0.1,0.35), x3 = runif(10,min = 0.1,.38))
ds <- ds %>% mutate_all(funs(round(.,3))) #round
ds <- ds %>% mutate(x1 = x1*-1) #transform into negative
ds <- ds %>%
rowwise() %>% #each row
mutate(Max.Len = pmax(x1,x2,x3)) %>% #create a var to the highest value
mutate(Min.Len = pmin(x1,x2,x3)) %>% #create a var to the lowests value
mutate(keep = if_else(abs(Max.Len)>abs(Min.Len),Max.Len,Min.Len)) %>% #create a var to point out the highest value considering the sign
mutate_all(funs(if_else(. == keep, keep, NA_real_))) %>% #keep only the highest value mainteining the sign
select(-c(Max.Len, Min.Len, keep)) #supress other variables
![Raw dataset](https://i.stack.imgur.com/B3x4Y.png)
![Transformed dataset](https://i.stack.imgur.com/HzFe8.png)
Спасибо