У меня проблема при использовании пакета tm и параллельных вычислений в R, и я не уверен, что я делаю что-то глупое или если это ошибка.Неправильное количество измерений - параллельное вычисление R
Я создал небольшой воспроизводимый пример:
# Load the libraries
library(tm)
library(snow)
# Create a Document Term Matrix
test_sentence = c("this is a test", "this is another test")
test_corpus = VCorpus(VectorSource(test_sentence))
test_TM = DocumentTermMatrix(test_corpus)
# Define a simple function that returns the matrix for the i-th document
test_function = function(i, TM){ TM[i, ] }
Если я бегу простой lapply, используя этот пример, я получаю то, что ожидается, без каких-либо проблем:
# This returns the expected list containing the rows of the Matrix
res1 = lapply(1:2, test_function, test_TM)
Но если я запускаю его параллельно I получить ошибку:
первая ошибка: неправильное количество измерений
# This should return the same thing of the lapply above but instead it stops with an error
cl = makeCluster(2)
res2 = parLapply(cl, 1:2, test_function, test_TM)
stopCluster(cl)
Вы совершенно правы .. какая глупая ошибка. Я предположил, что как только матрица была рассчитана, больше не было необходимости в библиотеке, не думая, что [метод находится внутри пакета. Большое спасибо! –