这个问题似乎很基本,但我找不到答案。
我想通过引用它们的indeces来添加data.frame
的列。
假设我想添加1,2和4列。
df <- data.frame(
a=rep(1, 5),
b=rep(2, 5),
c=rep(3, 5),
d=rep(4, 5)
)
我知道明确提到我可以做的列名
> df$a + df$b + df$d
[1] 7 7 7 7 7
指的是我能做的事情
> df[1] + df[2] + df[4]
a
1 7
2 7
3 7
4 7
5 7
但是,上面的索引选项要求我为每个要添加的列写出data.frame
的名称。
有没有办法将这些列添加到一起,只需引用indeces和data.frame
一次?
答案 0 :(得分:2)
或在data.table
:
dt[, sum := rowSums(.SD), .SDcols = c(1, 2, 4)]
dt[, sum := rowSums(.SD), .SDcols = c('a', 'b', 'd')]
答案 1 :(得分:1)
您可以使用rowSums函数并通过在df[, ]
中设置列号向量来引用列。
rowSums(df[, c(1,2,4)]
[1] 7 7 7 7 7
答案 2 :(得分:1)
var a = {
name:"321",
foo: function(){
console.log(name);
}
}
a.foo();
答案 3 :(得分:1)
使用data.table
的另一种解决方案:
require(data.table) # Load package
dt <- data.table(df) # Convert to data.table
dt[, a + b + d] # Sum columns
[1] 7 7 7 7 7
答案 4 :(得分:1)
另一种选择是
Reduce(`+`, df[-3])
#[1] 7 7 7 7 7
或@PierreLafortune的变体
df$a + df$b + df$d
#[1] 7 7 7 7 7