Почему демонстрационные данные работают для моей функции complete.R, а данные из теста - нет? - PullRequest
0 голосов
/ 07 июля 2019

В соответствии со следующим требованием я написал функцию complete.R

Требование в тесте 2 для программирования R (Coursera) : Напишите функцию, которая читает каталог, полный файлови сообщает количество полностью наблюдаемых случаев в каждом файле данных.Функция должна возвращать фрейм данных, где первый столбец - это имя файла, а второй столбец - количество завершенных дел.

Вот мой код завершения. R:

complete <- function(directory, id = 1:332) {
    location <- paste(getwd(), directory, sep="/")
    filenames <- list.files(location, full.names = TRUE)
    dat <- data.frame()
    for(i in id) {
        data <- read.csv(filenames[i])
        data <- na.omit(data)
        df <- data.frame("id" = i, "nobs" = nrow(data))
        dat <- rbind(dat, df)
    }
    dat
}

Но когда я ввожу следующий код из теста:

set.seed(42) 
cc <- complete("specdata", 332:1) 
use <- sample(332, 10) 
print(cc[use, "nobs"])

Мой вывод "87 96 576 76 237 4 121 117 361 932", даже не является ни одним из параметров в викторине.Правильный вывод должен быть «711 135 74 445 178 73 49 0 687 237».

Я пробовал использовать демонстрационные данные, и все они работают.Выходные данные такие же, как у демонстрационных результатов.

complete("specdata", 1) 
##   id nobs
## 1  1  117

complete("specdata", c(2, 4, 8, 10, 12)) 
##   id nobs
## 1  2 1041
## 2  4  474
## 3  8  192
## 4 10  148
## 5 12   96

complete("specdata", 30:25) 
##   id nobs
## 1 30  932
## 2 29  711
## 3 28  475
## 4 27  338
## 5 26  586
## 6 25  463

complete("specdata", 3)
##   id nobs
## 1  3  243

Так что я не мог понять это.С нетерпением ждем ваших идей.Спасибо.

Из-за версии R образец изменен.Я использую R3.6.0, в то время как ответы на викторины генерируются в более старой версии.Вот предложение по решению от учебного форума Coursera:

> vstr <- "3.5.1"  ## This choice works, you do not 
## need to have this version of R on your computer

> RNGversion(vstr)  ## do this once in your R session

## before taking any quiz questions using the sample function
## This "tells" R to run the random number generators
## from that version of R
## It returns a warning saying that version of sample is
## not "best"
Warning message:
In RNGkind("Mersenne-Twister", "Inversion", "Rounding") :
  non-uniform 'Rounding' sampler used

Затем запустите скрипт и введите код из викторины.

Теперь это работает!Спасибо.

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