2016-09-16 25 views
-1

我試圖編寫一個循環,例如返回給我一個包含十個數字條目的向量。它進行得很順利,直到我試圖用另一行標記該塊生成的輸出的每個元素。命名應該用每個條目的唯一標籤字符產生:「number」[n],其中n是用於生成數字向量的重複序列中的數字。如何將「for」循環寫入R中的數值向量的標籤元素

multiples <- c() 
i <- c(1:10) 
for (n in i) { 
    print (n * 10) 
    multiples[n] <- n * 10 
    names(multiples)[n] <- "number"[n] 
} 
multiples 

執行成功,但結果不是我所期待的。有沒有一種方法可以使用相同的for循環來正確命名元素?

+0

Deependra嗨。請看看這裏[如何使一個偉大的R可重現的例子?](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) –

+0

@RonakShah我的歉意讓問題不安。 –

+0

另一種方式是使用'sprintf'就像這樣:'names(multiples)[n] < - sprintf(「number%d」,n)' –

回答

0

我不認爲你需要在這裏循環。

你想要這樣做嗎?

i <- 1:10 
multiples <- i * 10 
names(multiples) <- paste0("number", i) 

multiples 
#number1 number2 number3 number4 number5 number6 number7 number8 
# 10  20  30  40  50  60  70  80 
#number9 number10 
# 90  100 

如果你要堅持for循環,您可以

i <- c(1:10) 
multiples <- numeric(10) 
names(multiples) <- "" 
for (n in i) { 
multiples[n] <- n * 10 
names(multiples)[n] <- paste0("number", n) 
} 
+0

謝謝。確實如此。但是,如何使用「for」循環實現相同的目標?作爲R中的統計編程的新手,我寧願堅持對大多數基本顯式循環的理解。 –

+0

@DeependraDhakal更新了答案。希望它有幫助。 –

+1

請不要教壞習慣。你知道載體有多大。預先分配它。 – Roland