我有一个大型日历集,其中包含来自林库存的多个数据。该数据框包含每个图中的物种。数据按网站进行组织。
> str(MM,max.level=2)
List of 50
$ :'data.frame': 2944 obs. of 18 variables:
..$ plot : int [1:2944] 2 3 3 3 3 4 4 4 5 5 ...
..$ Cla : Factor w/ 2 levels "A","N": 1 1 1 1 1 1 1 1 1 1 ...
..$ Subclase : Factor w/ 7 levels "1","3C","3E",..: 5 2 3 2 3 2 3 3 1 1 ...
..$ PosEsp : int [1:2944] 1 1 1 2 2 1 1 2 1 2 ...
..$ Especie : int [1:2944] 28 72 72 41 44 28 43 28 28 43 ...
..$ Ocupa : int [1:2944] 10 6 7 3 2 9 5 4 5 5 ...
..$ Estado : int [1:2944] 3 4 4 4 4 4 2 2 1 2 ...
..$ FPMasa : int [1:2944] 1 4 4 4 4 2 4 2 1 4 ...
..$ Edad : int [1:2944] 14 NA NA NA NA 35 NA 5 2 NA ...
..$ FInfor : int [1:2944] 8 NA NA NA NA 7 NA 5 1 NA ...
..$ Fiabil : int [1:2944] 4 NA NA NA NA 4 NA 3 4 NA ...
..$ Barrena1 : logi [1:2944] NA NA NA NA NA NA ...
..$ Barrena2 : logi [1:2944] NA NA NA NA NA NA ...
..$ Barrena3 : logi [1:2944] NA NA NA NA NA NA ...
..$ AltPer : logi [1:2944] NA NA NA NA NA NA ...
..$ OrgMasa1 : int [1:2944] 2 1 1 1 1 2 1 1 1 1 ...
..$ OrgMasa2 : int [1:2944] 2 4 4 4 4 2 4 1 1 4 ...
..$ TratMasa : int [1:2944] 1 2 2 2 2 1 2 1 1 2 ...
$ :'data.frame': 3685 obs. of 18 variables:
..$ plot : int [1:3685] 25 25 26 26 26 27 28 29 29 29 ...
..$ Cla : Factor w/ 3 levels "A","N","R": 1 1 1 1 1 1 1 1 1 1 ...
..$ Subclase : Factor w/ 8 levels "1","2","3C","3E",..: 1 1 5 5 5 1 6 3 4 3 ...
..$ PosEsp : int [1:3685] 1 2 1 2 3 1 1 1 1 2 ...
..$ Especie : int [1:3685] 24 237 24 237 68 24 24 24 24 237 ...
..$ Ocupa : int [1:3685] 8 1 6 2 2 9 10 9 9 1 ...
..$ Estado : int [1:3685] 4 2 3 2 2 4 3 4 4 2 ...
..$ FPMasa : int [1:3685] 4 4 4 4 4 3 2 4 4 4 ...
..$ Edad : int [1:3685] NA NA NA NA NA NA 25 NA NA NA ...
..$ FInfor : int [1:3685] NA NA NA NA NA NA 5 NA NA NA ...
..$ Fiabil : int [1:3685] NA NA NA NA NA NA 3 NA NA NA ...
..$ Barrena1 : logi [1:3685] NA NA NA NA NA NA ...
..$ Barrena2 : logi [1:3685] NA NA NA NA NA NA ...
..$ Barrena3 : logi [1:3685] NA NA NA NA NA NA ...
..$ AltPer : logi [1:3685] NA NA NA NA NA NA ...
..$ OrgMasa1 : int [1:3685] 1 1 1 1 1 1 2 1 1 1 ...
..$ OrgMasa2 : int [1:3685] 1 1 1 1 1 1 2 1 1 1 ...
..$ TratMasa : int [1:3685] 1 1 1 1 1 1 1 1 1 1 ...
> names(MM[[9]])
[1] "plot" "Cla" "Subclase" "PosEsp" "Especie"
[6] "Ocupa" "Estado" "FPMasa" "Edad" "FInfor"
[11] "Fiabil" "Barrena1" "Barrena2" "Barrena3" "AltPer"
[16] "OrgMasa1" "OrgMasa2" "TratMasa"
我需要在Especies(== 24& == 28)中按多个条件对每个绘图的数据集进行子集化。我正在尝试
<-llply(MM, subset, Especie==24)
购买,仅由一个物种工作
有谁知道我怎么做到这一点?提前致谢
答案 0 :(得分:0)
使用str(MM)很难处理。
不需要图书馆。你可以尝试类似的东西:
# input: df - output: subset by plot and some other criteria
f <- function(x){
x.splitted <- split(x, x$plot)
lapply(x.splitted, function(y) y[y$Especie == 24 &
y$Especie == 28,])
}
#
MM.subset <- lapply(MM, f)
您可以选择将所有数据合并到一个data.frame
中# In case you prefer a data.frame instead of a list of data.frames
do.call(rbind, MM.subset)