簡體   English   中英

數據表 R || 對數據表列表中的特定列求和

[英]data.table R || sum specific column from list of data tables

library(data.table)    
dt_store<-list()
A <- data.table(a = paste0("gid",1:4), b = paste0("IID",12:15),value=seq(from=1, to=4))
B <-  data.table(a = paste0("gid",1:4), b = paste0("IID",12:15),value=seq(from=11, to=14))
C <-  data.table(a = paste0("gid",1:4), b = paste0("IID",12:15),value=seq(from=21, to=24))


dt_store[[1]]<-A
dt_store[[2]]<-B
dt_store[[3]]<-C

我想求和/添加列value 列表中的每個 data.table 具有相同的行數和相同的列名。 b列是唯一的。 a列中可能有重復項

我想得到最終輸出:

    a     b final_sum
 gid1 IID12  33
 gid2 IID13  36
 gid3 IID14  39
 gid4 IID15  42

Reduce("+",lapply(dt_store,value)) #這個錯誤。

如何使用Reducelapply , mapply 我可以使用 for 循環,但這太天真了。 抱歉,這些關鍵功能對我來說很難掌握。

我們可以使用rbindlistlist元素進行 rbind,然后按sum進行分組

library(data.table)
rbindlist(dt_store)[, .(final_sum = sum(value)), .(a, b)]

-輸出

#       a     b final_sum
#1: gid1 IID12        33
#2: gid2 IID13        36
#3: gid3 IID14        39
#4: gid4 IID15        42

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM