Воспроизвести список фрейма данных - PullRequest
0 голосов
/ 12 октября 2018

сегодня я хотел запустить пакет TropFishR, проблема в том, чтобы (мне), все данные должны быть расположены в списке.Поэтому я попытался восстановить набор данных alba, чтобы в будущем повторить его с моими собственными данными.Вот что я сделал:

    library(TropFishR)
    data("alba")
    str(alba) #the list contain 4 variables

    List of 4
    $ sample.no : int [1:14] 1 2 3 4 5 6 7 8 9 10 ...
    $ midLengths: num [1:14] 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 ...
    $ dates     : Date[1:7], format: "1976-04-17" "1976-07-02" "1976-09-19" ...
    $ catch     : num [1:14, 1:7] 0 0 0 1 1 1 3 9 5 0 ...
     ..- attr(*, "dimnames")=List of 2
     .. ..$ : NULL
     .. ..$ : chr [1:7] "1976.29315068493" "1976.50136986301" "1976.71780821918" "1976.95616438356" ...
     - attr(*, "class")= chr "lfq"

И вот что я сделал:

   #1 We create sample.no
    sample.no <- c(1:14)
    sample.no
   #2 We create "midlengths"
    midlengths <- seq(from = 1.5, to = 14.5, by = 1)
    midlengths
   #3 We create "dates"
    dates <- as.Date(c("1976-04-17","1976-07-02", "1976-09-19", "1976-12-15", "1977-02-18",
               "1977-04-30", "1977-06-24"))
    dates
   #4 We create "catch"
    catch <- as.matrix(read.csv(file.choose(), header=T)) 
    #I copied the alba length freq data, move it to excel and imported as csv file
    colnames(catch)<-NULL
    print(catch)
   #5 create list files 
    synLFQb <- list(sample.no,midlengths,dates,catch)
    synLFQb #just checked if it turned out to be as desired format
   #6 create a name for the data list
    names(synLFQb) <- c("sample.no","midlengths","dates","catch")
   #Finally, we need to assign the class lfq to our new object in    order to allow it to be recognized by other TropFishR functions, e.g. plot.lfq:
    class(synLFQb) <- "lfq"

он выдаст «похожий» список данных

    str(synLFQb)
    List of 4
    $ sample.no : int [1:14] 1 2 3 4 5 6 7 8 9 10 ...
    $ midlengths: num [1:14] 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 ...
    $ dates     : Date[1:7], format: "1976-04-17" "1976-07-02" "1976-09-19" ...
    $ catch     : int [1:14, 1:7] 0 0 0 1 1 1 3 9 5 0 ...
      ..- attr(*, "dimnames")=List of 2
      .. ..$ : NULL
      .. ..$ : NULL
      - attr(*, "class")= chr "lfq"

ОднакоКогда каждый раз я пытался выполнить эту простую команду:

    plot(synLFQb, Fname="catch", hist.sc = 1)

Это приводило к ошибке:

    > plot(synLFQb, Fname="catch", hist.sc = 1)
    Error in plot.window(...) : need finite 'ylim' values
    In addition: Warning messages:
    1: In min(x, na.rm = na.rm) :
       no non-missing arguments to min; returning Inf
    2: In max(x, na.rm = na.rm) :
       no non-missing arguments to max; returning -Inf

Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 30 января 2019

Пожалуйста, убедитесь, что вы называете вектор средней длины в вашем списке "midLengths" с большой буквы "L".Я надеюсь, что воля добьется цели в вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...