我有一个包含18个数据框的列表,我使用read.xlsx读取。每个数据框具有相同的列数,但某些列包含某些行的NA。 此外,在Abundance列中有行包含非数字数据,我怀疑我可能需要从每个数据框中删除这些行,但我无法找到删除这些行的方法。
我的数据框架结构如下:
$ :'data.frame': 118 obs. of 10 variables:
..$ Locus : Factor w/ 24 levels "A","CS",..: 14 14 14 14 22 22 NA 22 10 10 ...
..$ Target : Factor w/ 96 levels "[AAAGA]14","[AAAGA]15",..: 88 91 90 87 11 12 NA 9 65 67 ...
..$ Length : num [1:118] 60 76 72 56 24 39 NA 20 139 141 ...
..$ Abundance : num [1:118] 1479 1108 180 144 1786 ...
..$ Size : num [1:118] 15 19 18 14 6 9.3 NA 5 32 32.2 ...
..$ Call : Factor w/ 4 levels "Al","HAs",..: 1 1 3 3 1 1 NA 3 1 1 ...
..$ RAR : num [1:118] NA 74.92 12.17 9.74 NA ...
..$ Position : num [1:118] NA NA NA NA NA NA NA NA NA NA ...
..$ Al.1.s.percent: num [1:118] NA NA 12.17 9.74 NA ...
..$ Al.2.s.percent: num [1:118] NA NA 16.2 13 NA ...
我想将此函数应用于我的数据框列表中的每个数据框。
add.sum = function(df){
transform(df, Tot.count = ave(df[[Abundunce]], df[[Locus]], FUN = sum))
}
我尝试使用lapply
这一行transformed.data = lapply(mydata, add.sum)
我也是这样试过的
transformed.data = lapply(mydata, function (x) add.sum(x))
但这些给我以下错误
Error in .subset2(x, i, exact = exact) : no such index at level 1
有关如何使其正常工作的任何建议吗?