4

次の形式のマトリックスに、2列ごとに各行の値を追加したいと思います。

1  1  100 2 104 4 200
2  1  100 2 103 3 203
3  1  100 3 101 3 304
4  1  100 4 105 2 201

ここでは、3番目の列を追加し、次に1つおきに追加して、次の出力を生成します。

404
406
505
406

これはforループなしで実行できますか?

4

3 に答える 3

5

データ フレームの名前がdf.

 apply(df,1,function(x) sum(x[seq(3,length(x),2)]))
[1] 404 406 505 406
于 2013-01-01T18:38:44.217 に答える
5

できるよ:

rowSums(df[,-c(1,2)][, c(TRUE, FALSE)])
# [1] 404 406 505 406

where[, -c(1,2)]は最初の 2 列を破棄し、1 列[, c(TRUE, FALSE)]おきに保持します。

于 2013-01-01T20:04:00.770 に答える
2
rowSums(df[,seq(from=3, to=ncol(df), by=2)])
于 2013-01-02T09:54:11.270 に答える