Вы не можете использовать ==
. Вам нужно grepl
. Также нет необходимости в ifelse
, т.е.
...mutate(player_mike = as.integer(grepl('redo', Engi_log)))
Как отмечает @Gregor, нам не нужно проходить через механизм регулярных выражений grepl
, поэтому добавление fixed = TRUE
в grepl
повысит эффективность
Перемещение в .NET позволило бы Вам иметь лучшие инструменты в Вашем распоряжении для управления данными.
Необходимо быть осторожными, хотя о том, что точно Вы делаете в данный момент с Вашим Решением доступа: если Вы делаете большую обработку особого случая для обработки данных от и до Excel, то возможности, необходимо будет все еще сделать возможности на любом языке или платформе, которую Вы выбрали.
Если у Вас есть много кода, который инвестируют в получение по запросу Excel Data into Access затем, Вы могли бы все еще сохранить Доступ для той части и использовать .NET для помощи Вам в выполнении сравнений и создания получающегося отчета Excel.
Немного трудно действительно предоставить рекомендацию, не зная больше о Вашем проекте.
Если Вы просто хотите использовать автоматизацию, чтобы вытянуть - в данных и создать Ваш файл Excel, то .NET не может предложить Вам много, поскольку необходимо будет все еще сделать те же самые вещи, которые Вы уже сделали в Доступе.
Вместо этого можно рассмотреть использование коммерческого компонента Excel, которые используют другую парадигму для открытий/создавания электронной таблицы Excel более хорошим способом.
Существует несколько поставщиков компонента, которые имеют их.
Одно решение состоит в том, чтобы также использовать инструменты создания отчетов, чтобы непосредственно вытянуть данные из Excel и представить отчет, который можно просто сохранить назад к Excel.
Мой совет был бы:
Если Вы идете путем .NET, Вы даже не можете закончить тем, что не нуждались в базе данных для обработки данных.
Если Вы делаете, хотя, можно всегда использовать Струю - или ее новая версия, ACE - как бэкенд, который создаст базы данных MSAccess.
Это уже установлено на большинстве машин и хорошо поддерживается инструментами MS.
Другими хорошими вариантами является Компактный SQL Server и SQLite, поскольку ни один из них не требует, чтобы сложная установка, просто DLL поставлялась с Вашим проектом.
В SpreadsheetGear нашей специальностью является высокопроизводительный Excel совместимые компоненты электронной таблицы. Мы слышим все время (см. несколько отзывов клиента на этой странице), что SpreadsheetGear для.NET быстрее и легче использовать, чем другие опции.
Существуют живые образцы ASP.NET с C# и источником VB.NET и бесплатной демонстрационной версией, если Вы хотите попробовать его за себя.
Отказ от ответственности: Я владею SpreadsheetGear LLC
Я сказал бы для объемов данных 20 000 строк, что Вы работаете с, база данных SQL-сервера действительно не собирается получать Вас очень за исключением перемещения в хранимые процедуры для манипулирования данными. В этом отношении это возможно лучше, чем VBA, таким образом, Вы, вероятно, получите кодовую базу, это более удобно в сопровождении. Однако объемы данных, которые Вы описываете, являются крошечными по стандартам базы данных. Я не ожидал бы, что производительность будет проблемой, пока у Вас нет одного или двух порядков величины больше данных, чем это.
Если Вы хотите сделать задание порчи данных, Вы могли бы быть более обеспечены с языком сценариев как Perl или Python. Эти языки намного лучше для задач манипулирования данными, чем C# или VB.Net. Хорошие, бесплатные дистрибутивы окон и Perl и Python могут быть найдены по www.activestate.com.
Excel может быть задан сценарием с Python через интерфейс python-com использование того же API как VBA, но получение намного лучшего языка с огромным множеством доступных libraies. Точно так же это может также быть сделано с Perl через Win32:: OLE. Существуют также некоторые служебные библиотеки, такие как pyexcelerator, xlrd, и xlwt, для Python и электронной таблицы:: WriteExcel/Spreadsheet:: ParseExcel для Perl. Существуют также модули, доступные для создания устанавливаемых приложений Windows, таких как Py2EXE или Perl Dev Kit
Эта регистрация Stackoverflow обсуждает использование Excel из Python, включая генерацию обертки с MakePy, в немного большей глубине.
Он Вы работаете с .NET, Вы могли также попробовать IronPython - это - собственная реализация .NET Python, который будет работать куда угодно с подходящим установленным временем выполнения .NET. Можно получить также свободный плагин Visual Studio под названием IronPythonStudio).
Другая альтернатива является R. R является, прежде всего, статистическим пакетом, но базовый язык имеет сильные возможности манипулирования данными и множество интерфейсных библиотек (и другие, такие как графика, различные статистические вычисления и интерфейс Excel.. Это - на самом деле вполне мощное манипулирование данными общего назначения и инструмент создания отчетов.
Библиотека Apache POI может быть полезна для Вас. Это - базирующийся Java и может работать над файлами Excel.
Другой выбор может состоять в том, чтобы использовать прямой драйвер ODBC для работы над файлом XLS. Могло бы быть много записей хотя..
Проект ПОИ состоит из API для управления различными форматами файлов, основанными на формате OLE 2 Составного документа Microsoft и формате Office OpenXML, с помощью чистого Java. Короче говоря, можно считать и записать MS файлы Excel с помощью Java. Кроме того, можно считать и записать MS Word и MS файлы PowerPoint с помощью Java. ПОИ является Ваш Java решение Excel (для Excel 97-2007). Однако мы имеем полный API для портирования других форматов OLE 2 Составного документа и приветствуем других для участия.
Составной документ OLE 2 основанные на формате файлы включает большинство файлов Microsoft Office, таких как XLS и DOC, а также сериализация MFC основанные на API форматы файлов.
Office OpenXML основанные на формате файлы включает новое (2007 +) xml базирующиеся форматы файлов, включая файлы Microsoft Office, такие как XLSX, DOCX и PPTX.
Править: Проверьте инструмент как монарх Pro, это превосходно при анализе данных и т.д.
SpreadsheetGear полностью качается! Вы получаете лучший из обоих миров, где вся логика в электронной таблице доступна для Вас для выполнения из кода. Можно действительно сократить разработку, поскольку Вы можете сделать, чтобы подразделения помогли сформировать логику для своих бизнес-процессов.
Это звучит мне, что Доступ не помогает Вам как посреднику. Строки 20K не походят на много мне. Вы сказали, что идете от Excel до Доступа и затем обратно к Excel. Необходимо ли иметь в наличии данные Доступа?
В противном случае я предложил бы идти с .NET и сторонней библиотекой Excel как FlexCel и пошел бы прямо от Excel до Excel в памяти. Упаковочные приложения .NET легки или с установщиком или с ClickOnce.
Я рассмотрел бы систему, которая использовала SQL Server, Компактный для запуска с. Можно использовать его без установки, если Вы желаете к (хотя я предлагаю, чтобы Вы сделали, намного легче просто предположить, что необходимое dll находится в GAC). Если впоследствии Вы найдете необходимость в большей функциональности (скажите, что хранимые процедуры или столбцы ТЕКСТА/BLOB, такая вещь), то затем перемещающийся в SQL Server будет тривиально.
Если Ваша база данных повторно создана, каждый раз, затем испытывающий разные вещи, является простым как указывающий на различный файл.
Если бы у Вас есть значительный код в VBA, я предложил бы сначала переместить его в VB.Net (делающий это, сначала и большую часть подверженного ошибкам легче перехода) затем миграция, что к c#, если это - Ваше требование.
Относительно генерации/изменения листа Excel у Вас есть три опции.
Нужно использовать VSTO, хотя Википедия является намного лучшим описанием. Это будет самым близким к Вашей старой разработке VBA, хотя она имеет совершенно другой набор сложностей.
Другой должен пользоваться одной из выходных библиотек Excel, существуют некоторые плюс намного больше коммерческих. Я не мог рекомендовать, чтобы любой лично, хотя других здесь имел.
Последнее, просто разгрузили csv и позволяют Excel иметь дело с ним, когда Вы открываете его.
Интересно, переросли ли Вы Доступ. Это - то, для чего рождается больше устойчивых баз данных, как SQL Server. 20 000 строк не являются большим количеством для SQL Server, но я буду держать пари, что это добирается там для Доступа. Сколько дискового пространства Доступ поднимает при выполнении его? Как быстро данные растут, если вообще?
Как хорошо Вы знаете C# по сравнению с VB? Если Вы не знаете C# хорошо, это могла бы быть хорошая возможность учиться. Это - проблема, которую Вы уже знаете хорошо.