2013-06-12 17 views
5

Sayı detayları için yanıtları görmek, çözdü.R knitr: Farklı makineler arasında önbelleğe alınmış sonuçları kullanmak mümkün mü?

ben daha güçlü bir sunucu üzerinde ( knitr ile) bazı kodlar çalıştırmak ve sonra belki benim kendi dizüstü küçük değişikliklerin yapılma olasılığını istiyorum

. Klasörün tamamında kopyalama bile olsa, yerel olarak yeniden derlendiğinde önbellek yeniden oluşturulmuş gibi görünüyor, bundan kaçınmanın bir yolu var mı ve önbellekteki sonuçları gerçekten kullanıyor musunuz?

cevap

5

Güncelleme: Sorun farklı makinelerde knitr farklı sürümleri ortaya çıktı.


Teoride, evet - bir şeyi değiştirmezseniz, önbellek korunur. Pratikte, "küçük değişiklikler" in ne olduğunu dikkatli bir şekilde kontrol etmelisiniz. Önbellek için The documentation page, önbellek yeniden oluşturulacak ve her üç koşulun yerine getirilip getirilmediğini kontrol etmeniz gerektiğini açıkladı.

+0

Cevabınız için çok teşekkürler. Klasörleri farklı bir makinede yeniden derlemeden önce hiçbir şeyi değiştirmeden kopyaladım, bu yüzden 3 koşulun yerine geldiğini tahmin ediyorum. Şimdi, iki makinenin farklı R sürümlerini (yerel olarak 2.15.1 ve 3.0 sonra yerel) çalıştırdığını fark ettim. Ancak cache.extra seçeneğini kullanmıyorum, sürümlerdeki fark yeniden önbelleğin yeniden oluşturulmasını istiyor olabilir mi? Diğer taraftan, @Greg tarafından belirtilen tarih-saat konularının bir etkisi olup olmadığını merak ediyordum. – user2252705

+0

Tarih/saat önemli değil. R versiyonu da önemli değil. Sadece 'knitr' sürümlerinin iki makinede aynı olduğundan emin olmanız gerekiyor, bu yüzden kütüphaneyi (knitr) kontrol edin; sessionInfo() ' –

+0

Sadece kontrol ettim ve' knitr 'sürümlerinin aslında farklı olduğunu keşfettim. Öneri için teşekkürler, denemeyi her iki makinede de aynı sürümle yeniden yapmaya çalışacağım ve bunun sorunu çözeceğini umuyorum. – user2252705

0

acaba @ ek olarak eğer Yihui cevabı bile dosyalarda tarihsaat onlar hiçbir şey değişmedi bile güncel bakmak olacak şekilde başka değişimlere bir makineden kopyalama işlemi. Kopyalama sonrasında katılan dosyalar üzerinde tarihlerde

bak. Hangi dosyaların diğerlerinden daha yeni olması gerektiğini anlayabiliyorsanız, touch bunları yeniden oluşturmayı engelleyebilir.

Diğer bir seçenek de yeniden kalmayacakları şekilde (yani sen yeniden çalıştırın ve bu parçaların herhangi bir değişiklik olmadığını elle repaste gerektiği anlamına gelir gerçi) sadece doğrudan chached parçalar halinde yapıştırmak olurdu.

+0

Cevabınız için çok teşekkürler. Önbellekte sayısız dosya var, böylece onları doğru sıraya dokunmak çok pratik görünmüyor. Sanırım aynı şey el ile yapıştırmada da geçerli, ama ne demek istediğini anlayamadığımdan emin değilim. Tekrar teşekkürler. – user2252705

+0

@ user2252705, yapıştırmak istediğinizde sadece çıktıyı önbelleğe almak istediğiniz parçadan alın ve çıktıyı üretecek komutları yerine doğrudan dosyaya yapıştırın. –

İlgili konular