user1091883
user1091883

Reputation: 147

R populate multidimensional array

Hi I am stuck with one of these simple but time-consuming errors:

How can I populate an array with loops? I know I am on a C approach here and R isn't C.

  Data <-[SOMETHING HERE]
  One <-200
  Two <-100
  array222 <- array(0,length(SomeLength))


  for (i in 1:One)
  {
    for (j in 1:Two)
    {
      array222[i][j] = sample(Data,1)   
    }

I want to populate the array with random samples from another dataset but all I get is this:

Warning in array222[i][j] = sample(Data, 1) :
  number of items to replace is not a multiple of replacement length

Upvotes: 2

Views: 2404

Answers (1)

MrFlick
MrFlick

Reputation: 206197

First of all, you wouldn't use loops to do this in R. You'd just do

array222 <- matrix(sample(Data, One*Two, replace=T), nrow=One, ncol=Two)

But going back to your code, you fail to properly initialize your array222 variable. The matrix() syntax is probably easier for a 2-D array, but you could also use array(0, dim=c(One,Two)). You need to create it with the proper dimensions.

And additionally, the proper way to index a dimensional array is

array222[i,j]  #NOT array222[i][j]

Upvotes: 2

Related Questions