Eu tenho um dataframe contendo duas colunas com valores numéricos. Quero ajustar o intervalo dos valores enquanto mantenho a distância relativa entre os valores numéricos. O exemplo explica isso melhor.
Existe uma função padrão que faz isso?
df <- data.frame(
Name = c("A", "B", "C", "D", "E"),
Start = c(175000, 183597, 185317, 188307, 191390),
Stop = c(182548, 184724, 187841, 188599, 192650)
)
Range_Start <- df$Start[df$Name=="C"] - 10000
Range_Stop <- df$Stop[df$Name=="C"] + 10000
Range_Start2 <- 1
Range_Stop2 <- length(Range_Start:Range_Stop)
df2 <- df %>%
rowwise() %>%
dplyr::mutate(Start2 = Start - Range_Start) %>%
dplyr::mutate(Stop2 = Stop - Range_Start)
Valores desejados:
> df2$Start2
[1] -317 8280 10000 12990 16073
> df2$Stop2
[1] 7231 9407 12524 13282 17333
Não há necessidade de ir
rowwise
:Execute novamente com dados atualizados:
Para realizar a mesma operação em múltiplas colunas (neste caso subtraindo um valor fixo), podemos usar
across
dentromutate