Вы можете написать небольшую функцию, которая будет принимать данные и количество нужных вам столбцов. По умолчанию всего 4 столбца
reshaping = function(dat, cols = 4){
n = nrow(dat)
m = ceiling(n/cols)
time=rep(1:cols, each = m, len = n)
id = rep(1:m, times = cols, len = n)
reshape(cbind(id, time, dat), idvar = 'id', dir='wide')[-1]
}
reshaping(dat)
scores.1 points.1 scores.2 points.2 scores.3 points.3 scores.4 points.4
1 328 1.449766 337 16.40224 346 43.67366 355 81.52636
2 329 2.398506 338 18.86847 347 47.37787 356 86.34135
3 330 3.544324 339 21.48127 348 51.21057 357 91.27426
4 331 4.876414 340 24.23793 349 55.17032 358 96.32417
5 332 6.386419 341 27.13600 350 59.25580 359 101.49017
6 333 8.067581 342 30.17321 351 63.46572 360 106.77140
7 334 9.914259 343 33.34746 352 67.79887 NA NA
8 335 11.921636 344 36.65681 353 72.25409 NA NA
9 336 14.085526 345 40.09944 354 76.83027 NA NA
reshaping(dat,8)
scores.1 points.1 scores.2 points.2 scores.3 points.3 scores.4 points.4 scores.5 points.5 scores.6 points.6 scores.7 points.7
1 328 1.449766 333 8.067581 338 18.86847 343 33.34746 348 51.21057 353 72.25409 358 96.32417
2 329 2.398506 334 9.914259 339 21.48127 344 36.65681 349 55.17032 354 76.83027 359 101.49017
3 330 3.544324 335 11.921636 340 24.23793 345 40.09944 350 59.25580 355 81.52636 360 106.77140
4 331 4.876414 336 14.085526 341 27.13600 346 43.67366 351 63.46572 356 86.34135 NA NA
5 332 6.386419 337 16.402235 342 30.17321 347 47.37787 352 67.79887 357 91.27426 NA NA
Стратегия используется во многих отладчиках (я не я не знаю об Eclipse) заключается в том, чтобы вставить патч в код в точке останова, которая по сути является вызовом подпрограммы или системным вызовом. Код, к которому был осуществлен переход, имеет информацию о точке останова и выполняет любую печать или прием пользовательских команд, а также имеет код, который был перезаписан патчем, так что код может быть выполнен, чтобы выполнение соответствовало исходному коду, без точки останова
Чтобы добавить к хорошему ответу Надрека :
Здесь есть статья с более подробной информацией, включая некоторые из более экзотических вещей (конкретные коды операций на x86; аппаратные точки останова).
Отладчики реализуют точки останова аппаратно или программно. Последнее требует сохранения исходной инструкции, вставки специального кода, который генерирует исключение, и, когда исключение возникает, повторной вставки исходной инструкции и сообщения пользователю о том, что точка останова была достигнута. Прочтите мою статью , чтобы узнать подробности о программных точках останова.