次の形式のマトリックスに、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ループなしで実行できますか?
次の形式のマトリックスに、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ループなしで実行できますか?
データ フレームの名前がdf
.
apply(df,1,function(x) sum(x[seq(3,length(x),2)]))
[1] 404 406 505 406
できるよ:
rowSums(df[,-c(1,2)][, c(TRUE, FALSE)])
# [1] 404 406 505 406
where[, -c(1,2)]
は最初の 2 列を破棄し、1 列[, c(TRUE, FALSE)]
おきに保持します。
rowSums(df[,seq(from=3, to=ncol(df), by=2)])