すぐにわからなかったのでメモ
2つ方法見つけましたが上のほうが簡単かな
sample.R
df <- data.frame(x=1:3,y=3:5,z=5:7)
# 行ごと
data.frame(t(apply(df, 1, function(d){ c(d, Z=sum(d)) })))
data.frame(do.call(rbind, lapply(split(df, 1:nrow(df)), function(d){ c(d, Z=sum(d)) })))
# 列ごと
data.frame(apply(df, 2, function(d){ c(d, sum(d)) }))
data.frame(do.call(cbind, lapply(df, function(d){ c(d, sum(d)) })))
結果
> df <- data.frame(x=1:3,y=3:5,z=5:7)
>
> # 行ごと
> data.frame(t(apply(df, 1, function(d){ c(d, Z=sum(d)) })))
x y z Z
1 1 3 5 9
2 2 4 6 12
3 3 5 7 15
> data.frame(do.call(rbind, lapply(split(df, 1:nrow(df)), function(d){ c(d, Z=sum(d)) })))
x y z Z
1 1 3 5 9
2 2 4 6 12
3 3 5 7 15
>
> # 列ごと
> data.frame(apply(df, 2, function(d){ c(d, sum(d)) }))
x y z
1 1 3 5
2 2 4 6
3 3 5 7
4 6 12 18
> data.frame(do.call(cbind, lapply(df, function(d){ c(d, sum(d)) })))
x y z
1 1 3 5
2 2 4 6
3 3 5 7
4 6 12 18