这是我的样本数据集。
Id longt latit. Count V1 V2 V3 V4 V5 V6 V7
19969 86.3603 23.8024 6 9 10 16 17 22 23 0
19969 86.3602 23.8033 5 10 16 17 22 23 0 0
如果任何其他行中的任何一个点相同,我想合并两行。 V1,V2 ...表示与当前点的半径相差100m的点的索引。我一次又一次地遇到第一行的错误。 6148:
Error in `*tmp*`[[j]] : recursive indexing failed at level 2
如果您需要更多信息,请告诉我! 这是我用过的代码。
book <- data.frame(book)
book <- as.data.frame.matrix(book)
temp <- data.matrix(book)
S <- 0
k <- 102
for (i in 1:(nrow(book) - 1))
{
if (book[i, 6] < 3) {
book[i, 1] <- 0
next
}
if (book[i, 1] == book[i + 1, 1]) {
for (j in (i + 1):nrow(book))
{
if (book[i, 1] != book[j, 1] & book[j, 1] != "0") {
break
}
for (q in 7:(6 + book[i, 6]))
{
t <- (book[i, q])
print(i)
print(q)
print((book[i, q]))
if (distm(cbind(book[t, 3], book[t, 2]),
cbind(book[j, 3], book[j, 2]), fun = distHaversine) < 100) {
S <- book[i, 6] + book[j, 6]
X <- book[i, 6]
Z <- book[j, 6]
if (S - k > 0) {
for (m in 1:(S - k))
{
book <- data.frame(book)
book <- as.data.frame.matrix(book)
B <- matrix(0, nrow(book), 1)
book <- cbind(book, B)
k <- S
}
}
book[i, 7:(6 + length(unique(c(
temp[i, 7:(6 + temp[i, 6])], temp[j, 7:(6 + temp[j, 6])]
))))] <-
unique(c(temp[i, 7:(6 + temp[i, 6])], temp[j, 7:(6 + temp[j, 6])]))
# if(Z!=0)
# { for(p in 0:(Z-1) )
# { book[i,(7+X+p)] <- book[j,(7+p)] }
# }
book[i, 6] <-
length(unique(c(temp[i, 7:(6 + temp[i, 6])], temp[j, 7:(6 + temp[j, 6])])))
book[j, 1] <- 0
break
}
}
book[is.na(book)] <- 0
}
}
for (f in 8:(6 + S))
{
book[book[i, f], 1] <- 0
}
}
我收到错误的数据集:
23918 86.7266 23.8197 31-03-16 4:54-- 31-03-16 5:03 0 0 0 0 0 0 0 0 0 0 0 0
23924 86.3249 23.809 25-03-16 12:23-- 25-03-16 12:31 8 6140 6141 6147 6154 6155 6156 6168 6174 0 0 0
23924 86.3254 23.809 25-03-16 12:31-- 25-03-16 12:39 10 6141 6147 6148 6155 6156 6157 6162 6168 6174 6183 0
23924 86.3266 23.8089 25-03-16 12:42-- 25-03-16 13:17 9 6142 6148 6149 6157 6158 6162 6175 6183 6184 0 0
23924 86.3282 23.8034 25-03-16 13:22-- 25-03-16 13:32 6 6143 6159 6169 6176 6185 6186 0 0 0 0 0
23924 86.3326 23.7991 25-03-16 13:32-- 25-03-16 14:04 5 6144 6150 6160 6170 6177 0 0 0 0 0 0
23924 86.5447 23.8214 25-03-16 14:51-- 25-03-16 15:14 1 6145 0 0 0 0 0 0 0 0 0 0
23924 86.6195 23.801 25-03-16 15:25-- 25-03-16 15:32 7 6146 6151 6164 6171 6178 6179 6187 0 0 0 0
23924 86.3254 23.809 25-03-16 20:27-- 25-03-16 20:33 9 6147 6148 6155 6156 6157 6162 6168 6174 6183 0 0
23924 86.326 23.8091 25-03-16 20:33-- 25-03-16 20:52 11 6148 6149 6156 6157 6158 6162 6168 6174 6175 6183 6184
23924 86.3264 23.8088 25-03-16 20:52-- 25-03-16 21:06 8 6149 6157 6158 6162 6168 6175 6183 6184 0 0 0
23924 86.3322 23.7988 25-03-16 21:18-- 25-03-16 22:16 4 6150 6160 6170 6177 0 0 0 0 0 0 0
23924 86.6195 23.801 25-03-16 23:11-- 25-03-16 23:26 6 6151 6164 6171 6178 6179 6187 0 0 0 0 0
23924 86.6878 23.79 25-03-16 23:35-- 26-03-16 0:13 4 6152 6172 6180 6191 0 0 0 0 0 0 0
23924 86.7264 23.8197 26-03-16 0:39-- 26-03-16 0:46 7 6153 6165 6173 6181 6182 6188 6192 0 0 0 0
23924 86.3241 23.8093 26-03-16 12:58-- 26-03-16 13:53 2 6154 6155 0 0 0 0 0 0 0 0 0
答案 0 :(得分:1)
错误是由于列数小于所需列数。 k = 102是荒谬的数量。