В прошлом я запускал Apriori в R с помощью пакета "arules". В прошлом я делал это с помощью плоских файлов в R studio со следующим кодом:
# install.packages('arules');
library(arules);
# the following is how I bring in flat files:
ds = read.csv('somedata.csv', header = FALSE)
# and here is how I import this data but as a sparse matrix:
dsSparse = read.transactions('somedata.csv', sep = ',', rm.duplicates = TRUE)
Впервые я работаю с данными в SQL Server и использую R Tools в visual studio.
Вот скрипт, который я запускаю:
#Connection to SQL Server.
connStr = paste("Driver=SQL Server; Server=", "MyServer", ";Database=", "MyDatabase", ";Trusted_Connection=true;", sep = "");
#Get data from SQL Query
SQL_ds = RxSqlServerData(sqlQuery = "SELECT * FROM dbo.SomeData", connectionString = connStr, returnDataFrame = TRUE);
#Run the query and store the data into the table
ds = rxImport(SQL_ds);
Есть ли способ, который я могу использовать, чтобы затем преобразовать это в разреженную матрицу, как я делаю со статическим файлом?
Я мог бы написать запрос T-SQL для поворота данных и создать разреженную матрицу таким образом, но я хотел бы знать, могу ли я сделать это эффективно в R.
Вот пример данных, с которыми я работаю:
CREATE TABLE #SomeData
(
SaleId INT
, Item1 NVARCHAR (500)
, Item2 NVARCHAR (500)
, Item3 NVARCHAR (500)
, Item4 NVARCHAR (500)
, Item5 NVARCHAR (500)
, Item6 NVARCHAR (500)
, Item7 NVARCHAR (500)
, Item8 NVARCHAR (500)
, Item9 NVARCHAR (500)
, Item10 NVARCHAR (500)
, Item11 NVARCHAR (500)
, Item12 NVARCHAR (500)
, Item13 NVARCHAR (500)
, Item14 NVARCHAR (500)
, Item15 NVARCHAR (500)
, Item16 NVARCHAR (500)
, Item17 NVARCHAR (500)
, Item18 NVARCHAR (500)
, Item19 NVARCHAR (500)
, Item20 NVARCHAR (500)
)
INSERT INTO #SomeData
VALUES
(1, N'shrimp', N'almonds', N'avocado', N'vegetables mix', N'green grapes', N'whole weat flour', N'yams', N'cottage cheese', N'energy drink', N'tomato juice', N'low fat yogurt', N'green tea', N'honey', N'salad', N'mineral water'
, N'salmon', N'antioxydant juice', N'frozen smoothie', N'spinach', N'olive oil')
, (2, N'burgers', N'meatballs', N'eggs', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
, (3, N'chutney', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
, (4, N'turkey', N'avocado', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
, (5, N'mineral water', N'milk', N'energy bar', N'whole wheat rice', N'green tea', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
SELECT * FROM #SomeData
Спасибо