I am trying to simulate rolling two dice. I used:
d2 <- sample(1:6, 10^6, replace = T) + sample(1:6, 10^6, replace = T)
and get the expe
If your issue is that you can't roll any arbitrary number of dice, something like:
rowSums(replicate(2, sample(6, 10^6, replace=T)))
Would be more flexible.
There is a dice function in the TeachingDemos package that simulates the rolling of dice (and there is even an option to plot the results, but 1000 rolls would not make a meaningful plot). This may seem a little less brute force, but internally it does similar to what has already been posted. You can use apply or related functions to do things like sum across the columns of the return.
I agree with David that nothing seems particularly wrong with your first option. Another way to go might be this, if you're really just after the sum of the two dice:
sample(2:12,size = 100,replace = TRUE, prob = table(outer(1:6,1:6,"+")) / 36)