Rで生成したデータの前処理
で以前質問したのですが、dplyrを用いた場合の最後のmutateのところがうまく行きません。

params <- expand.grid(p = 1:2, q = 1:1, r = 1:2, s = 1:1)
ans <- params %>% rowwise() %>% mutate(aic = f(p, q, r, s))

関数fの部分は単独で変数を指定(コンソールにf(1,1,1,1)などと打ち込む)するとしっかり

返ってきて問題はないようですが、返り値がmatrixになっているためas.data.frameで直すと変なくっつき方をしました(具体的にうまく説明できない)。
そのため、しっかり横につなげようとmatrixを転地したあとくっつけようとすると

Error: incompatible size (4), expecting 1 (the group size) or 1

のエラーが出ました。そのため、matrixの中身だけ取り出そうと

ans <- params %>% rowwise() %>% mutate(aic = f(p, q, r, s)$[1,1]) %>% mutate(bic=f(p, q, r, s)$[1,2])

とやるとこの場合は$[]を用いてはいけないようでエラーになりました。

詳しい方、ヘルプお願い致します。