2013-01-03 40 views
5

मान लीजिए कि हमारे पास एक कॉलम के साथ डेटाफ्रेम या मैट्रिक्स है जो एक पूर्णांक मान एन को नीचे (कॉल 5) निर्दिष्ट करता है। क्या ऑब्जेक्ट को दोबारा बदलने के लिए कोई वेक्टर दृष्टिकोण है जैसे कि प्रत्येक पंक्ति को प्रति बार कॉपी किया जाता है?पंक्तियों की प्रतिलिपि बनाने का तरीका आर

> y 
      [,1]  [,2]  [,3]  [,4] [,5] 
[1,] -0.02738267 0.5170621 -0.01644855 0.48830663 1 
[2,] -0.30076544 1.8136359 0.02319640 -1.59649330 2 
[3,] 1.73447245 0.4043638 -0.29112385 -0.25102988 3 
[4,] 0.01025271 -0.4908636 0.80857300 0.08137033 4 

परिणाम निम्नानुसार होगा।

[1,] -0.02738267 0.5170621 -0.01644855 0.48830663 1 
[2,] -0.30076544 1.8136359 0.02319640 -1.59649330 2  
[2,] -0.30076544 1.8136359 0.02319640 -1.59649330 2 
[3,] 1.73447245 0.4043638 -0.29112385 -0.25102988 3 
[3,] 1.73447245 0.4043638 -0.29112385 -0.25102988 3 
[3,] 1.73447245 0.4043638 -0.29112385 -0.25102988 3 
[4,] 0.01025271 -0.4908636 0.80857300 0.08137033 4 
[4,] 0.01025271 -0.4908636 0.80857300 0.08137033 4 
[4,] 0.01025271 -0.4908636 0.80857300 0.08137033 4 
[4,] 0.01025271 -0.4908636 0.80857300 0.08137033 4 

एक और सवाल नव आबादी पंक्तियों घबराना के लिए कैसे, नव कॉपी किए गए डेटा के ओवरलैप गणना नहीं है ऐसी है कि वहाँ होगा।

उत्तर

7

कुछ बना-अप डेटा:

y <- cbind(matrix(runif(16), 4, 4), 1:4) 

बस कार्य करें:

z <- y[rep(seq_len(nrow(y)), y[,5]), ] 
#   [,1]  [,2]  [,3]  [,4] [,5] 
# [1,] 0.5256007 0.07467979 0.95189484 0.2887943 1 
# [2,] 0.3083967 0.03518523 0.08380005 0.9168161 2 
# [3,] 0.3083967 0.03518523 0.08380005 0.9168161 2 
# [4,] 0.8549639 0.79452728 0.22483537 0.4452553 3 
# [5,] 0.8549639 0.79452728 0.22483537 0.4452553 3 
# [6,] 0.8549639 0.79452728 0.22483537 0.4452553 3 
# [7,] 0.5453508 0.47633523 0.51522514 0.3936340 4 
# [8,] 0.5453508 0.47633523 0.51522514 0.3936340 4 
# [9,] 0.5453508 0.47633523 0.51522514 0.3936340 4 
# [10,] 0.5453508 0.47633523 0.51522514 0.3936340 4 

और मुझे यकीन है कि आप "घबराना" द्वारा क्या मतलब है नहीं कर रहा हूँ, लेकिन शायद

z <- z + runif(z)/1000 

?

+0

सही। जिटर सिर्फ नई आबादी वाली पंक्तियां लेती है (एन कोल्स से घटाएं) और कुछ मामूली शोर जोड़ें ताकि वे सही प्रतियां न हों। मुझे लगता है कि जैसा कि आपने दिखाया है एक फ़ंक्शन जोड़ना एक अच्छी शुरुआत है। – pat