2016-04-25 2 views
-1

Rによって提供される処理を、行列の1つの(または別の方法で指定された)行/列に掛けたり、除算したり、減算したり、追加したり、適用したりするにはどうすればよいですか?私が何をしたいのR:行列の列/行を1つのみ処理しますか?

例:

[1] [2] [3] 
[1] 1 2 10 
[2] 2 4 12 
[3] 3 6 14 
[4] 8 16 20 

はその後デフのようないくつかのR演算子を取り、いくつかの列に適用し、3を言うと、元の行列を返します。最終結果:

[1] [2] [3] 
[1] 1 2 - 
[2] 2 4 2 
[3] 3 6 2 
[4] 8 16 6 
+1

あなたが何をしたいの例を提供することができます:あなたが最初(例えば0NA)に値を追加した場合、次のようにしかし、あなたはそれを行うことができますか?行 'r'の関数 'FUN'に対して' FUN(matrix [r、]) 'より複雑な何か? –

+0

@ DanLewer元の行列を返したいと思いますが、指定された行/列が処理されています。 – Dole

+0

私は 'matrix [、r] < - FUN(matrix [、r])'と考えています。しかし、あなたが望むものの例を提供すれば、答えを出すことができます。 –

答えて

2

例では、diffは長さ3のベクトルを返します。したがって、行列に収まりません。

x <- c(1, 2, 3, 8, 2, 4, 6, 16, 10, 12, 14, 20) 
x <- matrix(x, 4, 3) 
x[,3] <- c(NA, diff(x[,3])) 
+0

Rのこのような場合に最初の行を破壊する簡単な方法はありますか? x [2:]やそのような行のように... – Dole

+1

'x [-1、]'はあなたが必要とするものは何ですか? –