2015-08-15 14 views
7

Bir R paketinin belgelerini konsola yazdırmak istiyorum. gayetBaskı R paketi işlev dizini konsola

utils:::.getHelpFile(help("print")) 

eser yapmak ama

utils:::.getHelpFile(help(package="MASS")) 

çalıştığımda belirten bir hata alıyorum:

Error in dirname(file) : a character vector argument expected 

Benim soru yani: nasıl bir R paketinin belgelerine yazdırabilirsiniz (yani help(package="package_name")) konsola mı? Şimdiden teşekkürler.

+0

Buradaki yardım dosyalarının içindekiler tablosunu (dizinini) soruyorsunuz. İstediğin bu mu? –

+0

Merhaba @RichardScriven. Evet, paketin indeksi. – petobens

+0

@RichardScriven temelde aynı şey değil çünkü ls() ile i) paketi ilk yüklemem gerekiyor ve ii) Ne işlevin kısa bir tanımını almıyorum. – petobens

cevap

7

help(package = "MASS") (ayarlarınıza bağlı olarak) bir tarayıcı penceresinde açılan KİTLE paketi için INDEX dosyaya götürür. Bu dosyayı konsola okumak için, dosya yolunu almak için system.file(), ardından karakter vektörü olarak okumak için readLines() kullanabiliriz. Merak ettiğiniz takdirde

## get the complete file path for the index file of the MASS package 
f <- system.file("INDEX", package = "MASS") 
## read it 
readLines(f) 
# [1] "Functions:"         
# [2] "=========" 
# [3] "" 
# [4] "Null     Null Spaces of Matrices" 
# [5] "addterm     Try All One-Term Additions to a Model" 
# [6] "anova.negbin   Likelihood Ratio Tests for Negative Binomial GLMs" 
# ... 
# ... 

Ya da, sen Nihayet

readLines(file.path(find.package("MASS"), "INDEX")) 

ile aynı sonucu alabilir,

cat(readLines(f), sep = "\n") 
# Functions: 
# ========= 
# 
# Null     Null Spaces of Matrices 
# addterm     Try All One-Term Additions to a Model 
# anova.negbin   Likelihood Ratio Tests for Negative Binomial GLMs 
# ... 
# ... 

Alternatif temiz bir sürüm elde etmek cat() sarın olabilir html tarayıcısının üst kısmında görünen paket açıklamasına ve haberlere bağlantılar, bunlar

ile edinilebilir help(pacakge="MASS") bir packageInfo sınıf nesnesi değil (bazı diğer özellikler ile tam bir dosya yoludur) bir help_files_with_topic sınıf nesnesi döndürür çünkü
packageDescription("MASS") 
news(package = "MASS") 
+0

'help (package =" foo ")' her zaman açılmıyor tarayıcı penceresi. Bu, ayarlarınıza bağlıdır ('help 'yardımında' help_type' argümanına bakın). Ayrıca, paketlerde "dizin" dosyası yok. Dosya "INDEX" şeklindedir, bu nedenle kodunuz dosya adlarının büyük/küçük harfe duyarlı olduğu sistemlerde çalışmaz. –

+0

Teşekkürler @JoshuaUlrich - Makinemin yanı sıra 'INDEX' üzerinde de 'index' çalışmasının nedenini merak ediyordum. Açıklama için teşekkürler –

3

çalışmaz. den Temelde

cat(paste(format(help(package="MASS", help_type="text")), collapse="\n"),"\n") 

, sen format çıkışı:

İşte kadar gelebilir en basit şey. Sonra, paste, tek bir karakter dizesiyle sonuçlanacak ve yeni satırlarla birlikte çökecektir. Ardından bu sonuç için cat'u arayın.