2011-08-08 10 views
37

मेरे पास स्ट्रिंग का वेक्टर है।आर में आवेदन करते हुए तारों के वेक्टर के प्रत्येक तत्व पर एक स्ट्रिंग पेस्ट करने के लिए कैसे?

d <- c("Mon","Tues","Wednes","Thurs","Fri","Satur","Sun") 

जिसके लिए मैं वेक्टर के प्रत्येक तत्व पर "दिन" स्ट्रिंग पेस्ट करना चाहता हूं।

week <- apply(d, "day", paste, sep='') 

उत्तर

63

apply() के लिए कोई ज़रूरत नहीं, बस paste() का उपयोग करें:

R> d <- c("Mon","Tues","Wednes","Thurs","Fri","Satur","Sun") 
R> week <- paste(d, "day", sep="") 
R> week 
[1] "Monday" "Tuesday" "Wednesday" "Thursday" 
[4] "Friday" "Saturday" "Sunday" 
R> 
+1

+1 क्योंकि आप किया गया है करने के लिए पहली – Andrie

+2

+ लगते हैं 1 अगली बार मैं पहले प्रश्न के कोड स्वरूपण को बेहतर बनाने के लिए नहीं रोकूंगा। ;) – joran

+2

+1 इसे मापें, मापने के लिए 32 सेकंड –

9

अन्य पहले से ही संकेत दिया है के बाद से paste vectorised है, इस मामले में apply उपयोग करने की आवश्यकता है।

हालांकि, अपने प्रश्न का उत्तर देने के लिए: apply किसी सरणी या डेटा.फ्रेम के लिए उपयोग किया जाता है। आप एक सूची (या एक वेक्टर) पर एक समारोह को लागू करना चाहते है तो का उपयोग lapply या sapply (lapply कि का एक संस्करण को सरल परिणाम):

sapply(d, paste, "day", sep="") 
     Mon  Tues  Wednes  Thurs   Fri  Satur 
    "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" 
     Sun 
    "Sunday" 
+1

@pedrosaurio मुझे यह इंगित करना है कि यदि आप इस विशिष्ट समस्या के लिए 'sapply' का उपयोग करते हैं तो यह बेहद अक्षम होगा। @DirkEddelbuettel के सुझाव के रूप में, 'पेस्ट' के पहले से ही वेक्टरीकृत रूप का उपयोग करें। – Andrie

+0

@DirkEddelbuettel धन्यवाद, मैं पहले थोड़ा उलझन में था जिसके लिए मुझे अच्छा जवाब देना चाहिए। जैसा कि एंड्री का जवाब 'वास्तविक' उत्तर था, मैंने सोचा कि इसे अच्छे के रूप में चुना जाना चाहिए, लेकिन यदि यह गलत तरीका है और यह भविष्य के संदर्भ के लिए भ्रम पैदा करेगा तो मैं इसे बदल दूंगा। एक बार फिर धन्यवाद – pedrosaurio

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

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