Я экспортировал некоторые данные из файла csv в R. Я использую sqldf-пакет для обнуления данных. Мой запрос ниже. я могу предоставить свой файл CSV, но я не знаю, как прикрепить файлы здесь :(R language sqldf пакет обновления не работает
> sqldf("select * from
+ (
+
+ select Disposition as dummy_disposition, case Disposition
+ when 'Disposition' then 'UNKNOWN'
+ when 'Donate' then 'EOL'
+ when 'Resale' then 'EOL'
+ when 'Harvest' then 'EOL'
+ when 'IntelSpinOff' then 'EOL'
+ when 'Scrap' then 'EOL'
+ when 'BufferFeedForward' then 'ACTIVE'
+ when 'FB' then 'UNKNOWN'
+ when 'Unknown' then 'UNKOWN'
+ when 'HarvestResale' then 'EOL'
+ when 'ReturnToSupplier' then 'EOL'
+ when 'IcapResale' then 'EOL'
+ when 'NonEmsManaged' then 'EOL'
+ when 'BufferEOL' then 'EOL'
+ when 'ResaleScrap' then 'EOL'
+ when 'ST' then 'UNKNOWN'
+ when 'AS' then 'UNKNOWN'
+ else null end as new_status,
+
+ * from a where FloorStatus is null and disposition is not null
+
+
+) as table1
+ where new_status is null")
[1] dummy_disposition new_status Ueid Date EndDate
[6] Site CFD Type ScheduleId EventType
[11] FloorStatus EntityCode Ceid Process Supplier
[16] FA MfgType Disposition Comments extra1
[21] extra2 extra3
<0 rows> (or 0-length row.names)
, но когда я запускаю ниже запроса оно не работать :(Это интересно, потому что, кроме таблицы обновления части остальной части запроса является частью выше запрос
> sqldf("update a set FloorStatus = case Disposition
+ when 'Disposition' then 'UNKNOWN'
+ when 'Donate' then 'EOL'
+ when 'Resale' then 'EOL'
+ when 'Harvest' then 'EOL'
+ when 'IntelSpinOff' then 'EOL'
+ when 'Scrap' then 'EOL'
+ when 'BufferFeedForward' then 'ACTIVE'
+ when 'FB' then 'UNKNOWN'
+ when 'Unknown' then 'UNKNOWN'
+ when 'HarvestResale' then 'EOL'
+ when 'ReturnToSupplier' then 'EOL'
+ when 'IcapResale' then 'EOL'
+ when 'NonEmsManaged' then 'EOL'
+ when 'BufferEOL' then 'EOL'
+ when 'ResaleScrap' then 'EOL'
+ when 'ST' then 'UNKNOWN'
+ when 'AS' then 'UNKNOWN'
+ else null end
+ from a where FloorStatus is null and disposition is not null")
Error in sqliteExecStatement(con, statement, bind.data) :
RS-DBI driver: (error in statement: near "from": syntax error)
, что случилось с моей командой таблицы обновления, когда я запускаю мой код в студию разработки SQL это работает отлично ... но я бы предпочел, если код выполняется в R
UPDATE.?:
Какие изменения мне нужно сделать для кода ниже? ????
declare @outputs table
([day] datetime,
floorstatus varchar,
quantity int)
declare @Date datetime;
DECLARE dates_cursor CURSOR FOR
SELECT clndr_dt from epsd.dbo.t_calendar
where clndr_dt between '2008-01-01' and '2013-08-13'
order by clndr_dt
OPEN dates_cursor
FETCH NEXT from dates_cursor INTO @Date
WHILE @@FETCH_STATUS = 0
BEGIN
insert @outputs
select @Date as [Day], floorstatus, count(floorstatus) as quantity from Graph_data
where @Date between [Date] and EndDate
group by floorstatus
FETCH NEXT from dates_cursor INTO @Date
END
CLOSE dates_cursor
DEALLOCATE dates_cursor
select * from @outputs
ваше предложение помогло .. .any идея о моем обновлении/новом вопросе? – user2543622
В sqldf вы делаете все сразу, а не подряд за строкой. Если вопрос в основном заключается в том, как вставлять переменные, см. Пример 5 на домашней странице sqldf. https://code.google.com/p/sqldf/#Example_5._Insert_Variables –
мой вопрос немного другой ... Я пишу курсор, поскольку хочу перебирать свои данные. Каждая строка моих данных имеет 2 столбца - дату начала и окончания. я начну с 1-1-2008 и буду считать записи в каком-то другом столбце, если в моей дате находится столбец начала и окончания даты. Я пишу курсор, поскольку писать курсор довольно просто, и он обеспечивает быстрый выход. Мой код курсора не работал в R. Есть ли лучший способ добиться того же в R и sqldf? спасибо – user2543622