2011-07-11 5 views
8

ऑनलाइन समाधान नहीं देख सका लेकिन मैंने सोचा कि यह काफी आम हो सकता है।क्या आप हमेशा लिखें.csv में row.names = f का उपयोग करते हैं? आर (बेस) कार्यों के अंदर डिफ़ॉल्ट मानों को बदलना

write.csv के साथ मैं मूल रूप से हमेशा तर्क पंक्ति। नाम को एफ पर सेट करता हूं। क्या यह एक बार लाइन चलाने और शेष सत्र के लिए तर्क के डिफ़ॉल्ट मान को अपडेट करना संभव है?

मैंने कोशिश की:

paste <- paste(sep="") 

कौन सा भाग गया और कोई त्रुटि दी लेकिन कुछ भी नहीं लग रहा था (और पेस्ट समारोह नष्ट नहीं किया था)। यह एक और है, मैं हमेशा पेस्ट के साथ "" सेट करता हूं, जैसे कि जब मैं तालिका का उपयोग कर रहा हूं तो मुझे हमेशा 'बहिष्कार = नल' होता है ताकि मैं एन/ए मान देख सकूं।

संपादित करें: तो, मैं एक समाधान की तलाश में हूं जो संभवतः कई कार्यों के लिए काम करेगा, पेस्ट, write.csv, तालिका और इन जैसे अन्य कार्यों।

धन्यवाद

+0

बस इसका उल्लेख करने के लिए, 'पेस्ट' के मामले में, 'paste0'' जहां डिफ़ॉल्ट रूप से 'sep =" "' है। –

उत्तर

5

इस प्रयास करें:

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

यह आपके कार्यक्षेत्र में paste की एक नई प्रतिलिपि बनाता है, और फिर "" को sep के लिए उसके डिफ़ॉल्ट मान संशोधित करता है। paste पर बाद के कॉल संशोधित प्रति का उपयोग करेंगे, क्योंकि यह आपके खोज पथ में आधार वातावरण के सामने बैठता है।

+0

हम्म, यह पेस्ट के लिए काम करता है लेकिन write.csv या table नहीं। प्रश्न अद्यतन किया है। – nzcoops

+1

@nzcoops 'टेबल' के लिए यह मुश्किल है (डिफ़ॉल्ट रूप से सेट 'NULL' के लिए स्पष्ट होना)।'औपचारिक (तालिका) ["बहिष्कृत करें"] <- सूची (NULL)' आज़माएं। और 'write.csv' एक और कहानी है। मैं 'write.csv' और' write.csv2' के स्रोत को देखने की सलाह देता हूं और आपकी आवश्यकताओं को पूरा करने के लिए 'write.csv3' लिखने का प्रयास करता हूं। – Marek

+1

'write.csv' के स्रोत को देखते हुए आपको रोने की संभावना है – hadley

8

paste <- paste(sep="") "पेस्ट" नाम एक वस्तु में paste() के उत्पादन में डालता है। इसके बजाय आपको ऐसा कुछ करने की आवश्यकता होगी।

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

तुम भी बात की इस तरह के लिए Defaults पैकेज देख सकते हैं, लेकिन यह वर्तमान में आपके उदाहरण के दो लोगों के लिए काम नहीं करता।

+1

हम्म, मुझे एक त्रुटि मिलती है: मूल्यांकन बहुत गहराई से घोंसला: 'setDefaults (पेस्ट, sep =" ") 'के साथ त्रुटि। मुझे उसमें देखना होगा ... –

+0

हाँ, और तालिका भाग दुर्भाग्य से या तो काम नहीं करता है। 'SetDefaults' के लिए मदद से "किसी भी तर्क के लिए NULL असाइन करना डिफ़ॉल्ट सूची से तर्क को हटा देगा।" – nzcoops

+2

आपके उत्तर के पहले भाग के संबंध में, आपने ऐसा क्यों किया जो आपने पतन के साथ किया था? – nzcoops

संबंधित मुद्दे