2014-04-23 1 views
0

포리스트 인벤토리의 여러 데이터가있는 큰 집계가 있습니다. 이 데이터 프레임은 각 플롯에서 발견 된 종을 포함합니다. 그리고 데이터는 사이트별로 정리됩니다.여러 기준을 사용하여 데이터 프레임 목록 하위 집합

> 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

그것은이 코드'subMM <-llply (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) 

: 당신은 뭔가를 시도 할 수 Especie == c (21,26) & Ocupa> 1)'그래도 여전히 음모로 부분 집합하는 방법을 모르겠습니다. –

답변

0

에 단지 STR (MM)와 함께 작동하기가 어렵습니다.

라이브러리가 필요하지 않습니다. , 선택적으로 단일 data.frame

# In case you prefer a data.frame instead of a list of data.frames 
do.call(rbind, MM.subset) 
관련 문제