我正在处理生物信息学数据。我有一个重复的数字序列,这些数字本质上是不连续的。我正在尝试找到一种简单的方法来对它们重新编号,以便它们是连续的。
例如:
旧:1 1 1 2 2 3 3 5 5 7 7 7 9
欲望的改变
新增:1 1 1 2 2 3 3 4 4 5 5 5 6 6
我使用的是R。
发布于 2020-01-16 12:17:41
解决这个问题的一种方法是使用for循环,并跟踪要插入的当前数字和要替换的值。
vec <- c(1, 1, 1, 2, 2, 3, 3, 5, 5, 7, 7, 7, 9, 9)
curr <- vec[1]
rep <- vec[1]
for(i in 1:length(vec)) {
if(vec[i] > rep) {
rep <- vec[i]
curr <- curr + 1
}
if(vec[i] > curr) {
vec[i] <- curr
}
}
# Print the results
for(val in vec) {
print(val)
}此解决方案假定已对数字进行排序。如果没有,您可以使用sort方法。
https://stackoverflow.com/questions/59762150
复制相似问题