RStudio - объект не найден - kohonen pack

Я пытаюсь написать скрипт для карты som. Это взято из этого учебника. Моя проблема в том, что Rstudio не работает. У меня есть этот код:

require(kohonen)

# Create a training data set (rows are samples, columns are variables
# Here I am selecting a subset of my variables available in "data"
data_train <- data[, c(2,4,5,8)]

# Change the data frame with training data to a matrix
# Also center and scale all variables to give them equal importance during
# the SOM training process. 
data_train_matrix <- as.matrix(scale(data_train))

# Create the SOM Grid - you generally have to specify the size of the 
# training grid prior to training the SOM. Hexagonal and Circular 
# topologies are possible
som_grid <- somgrid(xdim = 20, ydim=20, topo="hexagonal")

# Finally, train the SOM, options for the number of iterations,
# the learning rates, and the neighbourhood are available
som_model <- som(data_train_matrix, 
                 grid=som_grid, 
                 rlen=500, 
                 alpha=c(0.05,0.01), 
                 keep.data = TRUE )
plot(som_model, type="changes")

Если я пытаюсь запустить этот скрипт, он пишет эту ошибку:

Error in supersom(list(X), ...) : object 'data_train_matrix' not found
> plot(som_model, type="changes")
Error in plot(som_model, type = "changes") : object 'som_model' not found

Я не понимаю этого. Что значит нет data_train_matrix? У меня есть data_train_matrix несколькими строками раньше. Когда я запускаю только первые 3 строки кода (до data_train_matrix <- as.matrix(scale(data_train))), он пишет эту ошибку:

data_train_matrix <- as.matrix(scale(data_train))
Error in scale(data_train) : object 'data_train' not found

и когда я запускаю только первые две строки, он пишет:

data_train <- data[, c(2,4,5,8)]
Error in data[, c(2, 4, 5, 8)] : 
  object of type 'closure' is not subsettable  

Как это возможно, что этот код работает в учебнике, в то время как у меня так много ошибок, использующих один и тот же код?


r som
person caroline    schedule 14.01.2018    source источник
comment
Вы установили kohonen, а затем активировали его?   -  person Natsfan    schedule 14.01.2018


Ответы (1)


Похоже, ошибка возникает из-за отсутствия исходного объекта, похожего на фрейм данных. Переменная «data-train», подмножество «data», никогда не назначалась должным образом. Сначала вам нужно следовать закомментированной строке создания набора обучающих данных.

    # Create a training data set (rows are samples, columns are variables
    # Here I am selecting a subset of my variables available in "data"
    data_train <- data[, c(2,4,5,8)]

R также имеет функцию с именем «данные», и именно так она интерпретирует код. Эта функция не является подмножеством, как и большинство функций в R.

Если вы создадите некоторые данные в самом начале, все должно работать.

    data = data.frame(matrix(rnorm(20), nrow=2))
    data_train <- data[, c(2,4,5,8)]
    # the rest of the script as written
person JohnM    schedule 14.01.2018