2012-10-31から1日間の記事一覧

Rで2つのベクトルの各要素の組み合わせから行列や表を生成

ちょっとややこしいが、こんな感じだろうか。 nums = c(1,2) lett = letters[1:3] matrix(apply(expand.grid(nums, lett), 1, function(istr){ paste(istr[1], istr[2])}), nrow = length(nums), dimnames = list(nums, lett)) もっとうまい方法はあるだろう…

Rで複数ベクトルへのapply適用

2つのベクトルに対してapplyを適用したい場合、rbindで単一の行列に変換してから、各列に対して演算を行うのが良さそうだ。 apply(rbind(x,y), 2, function(v){ return(v[1]*2 + v[2])}) Matlabなら、 arrayfun(@(v1, v2) v1*2+v2, [1,2,3],[4,5,6]) ともっ…