我现在正在使用数据包data.table,但是,我几乎找不到按行计算的方法。 例如:
apply(x,1,sum) # suppose x is a data.frame with many columns
有谁知道怎么做?
答案 0 :(得分:2)
尽量避免按行操作,但如果必须:
dt[, your.by.row.operation, by = 1:nrow(dt)]
答案 1 :(得分:0)
您可以尝试使用transform()。例如,使用我拥有的虚拟数据集:
> head(data)
sample time.min abs time.sec
1: pur n 0.0008333334 0.4678054 0.05
2: pur n 0.2508333325 0.4661632 15.05
3: pur n 0.5008333325 0.4663149 30.05
4: pur n 0.7508333325 0.4658490 45.05
5: pur n 1.0008333920 0.4671631 60.05
6: pur n 1.2508333920 0.4657932 75.05
让我们说我要总结两个"时间"将列组合在一起,并使用该值填充新列。我可以使用transform()来做到这一点:
> transform(data, time.sum = time.min + time.sec)
sample time.min abs time.sec time.sum
1: pur n 0.0008333334 0.4678054 0.05 0.05083333
2: pur n 0.2508333325 0.4661632 15.05 15.30083328
3: pur n 0.5008333325 0.4663149 30.05 30.55083328
4: pur n 0.7508333325 0.4658490 45.05 45.80083328
5: pur n 1.0008333920 0.4671631 60.05 61.05083691