2015-10-12 105 views
0

我想弄清楚如何在矢量中添加每個相應的組件並將其存儲在另一個矢量中。這是我到目前爲止有:在R中加載矢量的元素

# Create a function to roll a die n times. 
RollDie = function(n) sample(1:6, n, rep=T) 
die1 = RollDie(500) 
die2 = RollDie(500) 
die3 = RollDie(500) 
die4 = RollDie(500) 
die5 = RollDie(500) 
die6 = RollDie(500) 
# Sum the values of the first component of each vector which represent the values 
# of the six die rolled. 
X = sum(die1[1], die2[1], die3[1], die4[1], die5[1], die6[1]) 
X 

我試圖做的是和第一,第二,到6

所以模具(1)等成分,X的第一部分將是

sum(die1[1], die2[1], die3[1], die4[1], die5[1], die6[1]) 

X的第二部分將是

sum(die1[2], die2[2], die3[2], die4[2], die5[2], die6[2]) 

X的第三分量將

sum(die1[3], die2[3], die3[3], die4[3], die5[3], die6[3]) 

等等。 X的長度將爲500.

我試圖找到合適的命令,但沒有任何運氣。請幫忙。謝謝!

+0

你爲什麼不使用那些6向量爲列,創建一個500x6數據集。然後,簡單地創建另一列(在位置501),其中加上行。這是否有道理,或者你更願意發表一個例子? PS:把DIE這個詞改爲DICE,因爲也許人們不敢回覆。 :-) – AntoniosK

+0

你想'X < - die1 + die2 + die3 + die4 + die5 + die6'? – MrFlick

+0

與@MrFlick的解決方案非常相似,但存儲在data.frame中,以備進一步分析:'df = data.frame(die1,die2,die3,die4,die5,die6);正如我上面提到的那樣,df $ sum = df $ die1 + df $ die2 + df $ die3 + df $ die4 + df $ die5 + df $ die6'。如果您不想創建數據集,則可以使用其他優秀解決方案之一。 – AntoniosK

回答

1

用量化的方法的一個可能的解決方案:

rowSums(replicate(6, RollDie(500)))