Ваш код не поменяет местами x
и y
.
Обратите внимание, что нам не нужно, чтобы Rcpp менял местами x
и y
без копирования. Мы можем сделать это в прямой R, как показано ниже. x
изначально имеет адрес 0x16d9fa08, а y
изначально имеет адрес 0x170291d8 и после свопинга, выполненного в R, их адреса обмениваются, и все под ними остается с адресами, изначально связанными с теми же родительскими адресами, то есть содержимое по первоначальным адресам и не был скопирован.
library(pryr)
x <- data.frame(a = 1:2)
y <- data.frame(y = 3:4)
inspect(x)
## <VECSXP 0x16d9fa08>
## <INTSXP 0x1459a5b0>
## attributes:
## <LISTSXP 0x1203a7c0>
## ...snip...
inspect(y)
## <VECSXP 0x170291d8>
## <INTSXP 0x12039288>
## attributes:
## <LISTSXP 0x14894a10>
## ...snip...
tmp <- x
x <- y
y <- tmp
inspect(x)
## <VECSXP 0x170291d8>
## <INTSXP 0x12039288>
## attributes:
## <LISTSXP 0x14894a10>
## ...snip...
inspect(y)
## <VECSXP 0x16d9fa08>
## <INTSXP 0x1459a5b0>
## attributes:
## <LISTSXP 0x1203a7c0>
## ...snip...
Лучшее, которое можно сделать, как это кажется, должно проверить каталоги FTP исходных пакетов:
Имеет в виду, что Redhat имеет привычку к исправлению программного обеспечения к черту и назад, таким образом, номер версии не мог бы иметь к очень вместе с фактическим выпуском, специально для ядра.
Похож на Fedora, теперь работает над списком онлайн пакетов (PackageDB - видят http://fedoraproject.org/wiki/Infrastructure/PackageDatabase ). Текущая версия доступна в https://admin.fedoraproject.org/pkgdb / . Это, кажется, не знает обо всех пакетах RHEL4/RHEL5, все же.
Для начинающих: http://distrowatch.com/table.php?distribution=redhat имеет список важных версий, но конечно не перечисляет все версии пакета.
Если Вам установили Ваши вкусные репозитории, можно использовать "вкусный поиск", чтобы видеть, существует ли он, или "вкусный список" для наблюдения всех доступных пакетов.