汇总列表中不同文件的列

时间:2018-07-26 15:29:28

标签: r

所以我有20个文件的列表,每个文件有3列和大约一百万行。我将它们放在列表中,然后尝试做的事情是这样的:

df_info = pd.DataFrame(data= {'beginRows': [2, 7], 'endRows': [4, 9]}

每个文件的前两列x和y都是相同的,我只需要每个文件的第三列之和,并有一个新的单个文件,如上面带有x和y列的文件。我尝试过对列求和,但R似乎从未完成计算。

df_result = df[df.index.isin(np.r_[2:4+1,7:9+1])]

然后我尝试了一下,但是它给了我11个数字,我需要有100万个不同的数字

x y Sum --------------------------------- 1 1 28 . . . . . . . . . 900000 900000

有什么想法吗?

编辑:

我用了这个:

Sum <- do.call(rowSums,lapply(new,function(df){(df[3])}))

Sum <- do.call(rbind,lapply(new,function(df){sum(df[3])}))

1 个答案:

答案 0 :(得分:0)

IIUC,这应该返回所有行。您可以执行以下操作

# create sample data
d1 <- data.table(x=rep(1,10), y=rep(2,10), z = rep(1:5, each=2))
d2 <- data.table(x=rep(1,10), y=rep(2,10), z = rep(10:14, each=2))
dll <- list(d1, d2)

## add a group column
for(i in seq_along(dll)){
    dll[[i]] <- cbind(dll[[i]], group=i)
}

# convert list to df
mdf <- do.call('rbind', dll)

# convert df to data.table
setDT(mdf)
mdf[,sum := sum(z), group]
mdf[,group := NULL]