2011-07-11 10 views
8

İnternet üzerinden bir çözüm göremedim ancak bunun çok yaygın olabileceğini düşündüm.Her zaman row.names = F'yi write.csv dosyasında kullanıyor musunuz? R (temel) işlevleri içindeki varsayılan değerlerin değiştirilmesi

write.csv ile temelde her zaman argüman row.name setini F olarak ayarlıyorum. Bir satırı bir defa çalıştırmak ve oturumun geri kalanı için argümanın varsayılan değerini güncellemek mümkün mü?

Denedim: ran ve hiçbir hata döndürdü ama hiçbir şey gibiydi (yapıştır işlevi yok etmediler)

paste <- paste(sep="") 

. Bu bir diğeridir, her zaman "" ile yapıştırmada "" ayarlıyorum, her zaman tabloyu kullanırken 'exclude = NULL' gibi N/A değerlerini görebiliyorum.

DÜZENLEME: Yani, mümkünse çoklu işlevler için çalışacak bir çözüm arıyorum, yapıştır, write.csv, tablo ve bunun gibi diğer işlevler.

Teşekkür

+0

Sadece bahsetmek gerekirse, "paste" durumunda, varsayılan olarak "sep =" "' ifadesi olan paste0' vardır. –

cevap

5

bu deneyin:

paste <- paste 
formals(paste)$sep <- "" 

Bu çalışma alanında paste yeni bir kopyasını oluşturur ve daha sonra "" için sep için varsayılan değer olarak değiştirir. Daha sonra paste numarasına yapılan aramalar, değiştirilen kopyayı arama yolunuzdaki temel ortamın önüne yerleştirildiği için kullanacaktır.

+0

Hmmm, bu write.csv veya tablo için değil, yapıştırmak için çalışır. Güncellenmiş bir sorunuz var. – nzcoops

+1

@nzcoops "Tablo" için bu zor (varsayılan olarak "NULL" değerini ayarlamak için).Formülleri (tablo) ["hariç tut"] deneyin <- liste (NULL) '. Ve 'write.csv' başka bir hikaye. Write.csv' ve write.csv2'nin kaynağına bakmanızı ve ihtiyaçlarınızı karşılamak için 'write.csv3' yazmayı denemeliyim. – Marek

+1

Kaynağa 'write.csv'ye bakmanızın sizi ağlatması muhtemeldir – hadley

8

paste <- paste(sep="") "macun" adlı bir nesnenin içine paste() çıktısını koyar. Bunun yerine böyle bir şey yapman gerekecek.

paste <- function (..., sep = "", collapse = NULL) { 
    base::paste(..., sep=sep, collapse=collapse) 
} 

Ayrıca bu tür bir şey için Defaults paketine bakabilirsiniz, ancak şu anda sizin örneklerinden ikisi için çalışmaz.

+1

Hmm, bir Hata alıyorum: çok derin iç içe geçmiş değerlendirme: 'setDefaults ile hata (paste, sep =" ")'. Buna bakmak zorundayım ... –

+0

Evet, ve masa kısmı maalesef çalışmıyor. 'SetDefaults' 'Yardımı' 'Herhangi bir argümana NULL atama' argümanı Defaults listesinden kaldırır. ' – nzcoops

+2

Cevabınızın ilk kısmı ile ilgili olarak, neden çöküşle yaptığınızı yaptınız? – nzcoops

İlgili konular