У меня есть значения координат UTM от GPS-леопардов, и мой анализ будет испорчен, если есть какие-либо точки, которые идентичны. Что я хочу сделать, это добавить 1 в конец десятичной строки, чтобы сделать каждое значение уникальным.
Что у меня есть:
> View(coords)
> coords
X Y
1 623190.9 4980021
2 618876.6 4980729
3 618522.7 4980896
4 618522.7 4980096
5 618522.7 4980096
6 622674.1 4976161
Я хочу что-то подобное или что-то, что сделает каждое число уникальным (не должно быть +1)
> coords
X Y
1 623190.9 4980021
2 618876.6 4980729
3 618522.7 4980896
4 618522.71 4980096.1
5 618522.72 4977148.2
6 622674.1 4976161
Я посмотрел на существующие вопросы и заставил их работать для смоделированного набора данных, но не для значений с более чем 1 дублированным значением.
DF <- data.frame(A=c(5,5,6,6,7,7), B=c(1, 1, 2, 2, 2, 3))
>View(DF)
A B
1 5 1
2 5 1
3 6 2
4 6 2
5 7 2
6 7 3
DF <- do.call(rbind, lapply(split(DF, list(DF$A, DF$B)),
function(x) {
x$A <- x$A + seq(0, by=0.1, length.out=nrow(x))
x$B <- x$B + seq(0, by=0.1, length.out=nrow(x))
x
}))
>View(DF
A B
5.1.1 5.0 1.0
5.1.2 5.1 1.1
6.2.3 6.0 2.0
6.2.4 6.1 2.1
7.2 7.0 2.0
7.3 7.0 3.0
'2s' в столбце B не продолжают добавлять десятичную дробь, когда их больше 2. У меня также была проблема с выполнением этого, когда число было больше 4 цифр (то есть XXXXX против XX). лучший способ сделать это, но я хотел бы помочь с добавлением этих десятичных знаков и, возможно, их изменения в исходном фрейме данных, который имеет 12 столбцов различных данных.