R: избегая циклов при вставке записей в матрицу - PullRequest
2 голосов
/ 14 февраля 2012

У меня есть матрица m нулей и фрейм данных df, содержащий записи, которые я хочу вставить в m.

# fix seed -------------------------------------------
set.seed(0)    

# create m, matrix of zeros --------------------------
rnames <- seq( 1, 100, 1 )
m <- matrix( 0, length( rnames ), length( letters ),
      dimnames=list( rnames, letters ))

# create df of random records ------------------------
r <- sample( rnames, 10, replace=TRUE )
c <- sample( letters, 10, replace=TRUE )
q <- runif( 10, -10, 10 )
df <- data.frame( r, c, q )

# want to insert df$q at r,c in m --------------------

Могу ли я сделать это, не прибегая кцикл?Какой самый чистый подход?

1 Ответ

5 голосов
/ 14 февраля 2012

Передать матрицу указаний в m.

index <- cbind(
    row = df$r,
    col = match(df$c, colnames(m))       
)

m[index] <- df$q
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...