【发布时间】:2018-10-13 21:35:41
【问题描述】:
我想在数据框列表上使用 tapply 来计算各个组的总和,然后将值 0 的出现制成表格。在单个数据框上我会这样做:
sums <- tapply(my_data_frame$V3, my_data_frame$V2, sum)
table(unlist(sums==0))
由于我必须为许多文件计算这个,我将它们全部加载到一个列表中:
files <- Sys.glob("*txt")
listOfFiles <- lapply(files, function(x) read.table(x, skip = 1, sep = "\t"))
listOfFiles <- lapply(listOfFiles, function (x) na.omit(x))
这个我试过了,还是不行:
lapply(listOfFiles, tapply(
lapply(listOfFiles, "[", c(2)),
lapply(listOfFiles, "[", c(3)),
sum)
)
有人可以给我一些提示吗?
【问题讨论】:
-
你好马雷克。请阅读How to Create a Minimal, Complete, and Verifiable Example 并更新您的问题。另外,请在您的问题中解释什么是“组”。
-
这不是数据框列表:
my_data_frame$V3, my_data_frame$V2,它是列列表(或您称之为“个人组”)。您想按名称还是按索引引用列? -
lapply(listOfFiles, "[", c(2))和...c(3)的意图只是从每个数据帧中分割第 2,3 列。有许多更简单的方法可以做到这一点,并重复问题。首先,您想使用什么数据结构来保存多个数据帧?列表?小标题?