1

голосов
1

ответ
30

Просмотры

Перемешайте возврата результатов - Доступ

Мне нужно, чтобы совпасть работник с задачей в небольшой Microsoft Access DB, который я построил. По сути, у меня есть список из 45 потенциальных задач, и у меня есть 25 сотрудников. Что мне нужно: Каждый сотрудник, чтобы иметь по крайней мере одну задачи Нет сотрудник, чтобы иметь более двух Уметь рандомизации результатов каждый раз, когда я выполнить запрос (так же люди не получают последовательно один и ту же задачу) Моя структура таблицы : Сотрудники - ж / поля: ID, Имя задачи - ж / поля: ID, местоположение, групповая, задача, которую я знаю, что это глупый вопрос, но я действительно борюсь. Я искал через SO и Google за помощью, но не увенчались успехом. У меня нет способа связать вместе сотрудников задач, поскольку каждый сотрудник способен каждой задачи, поэтому я собирался: SELECT * из сотрудников SELECT * из задач Союза COUNT (Имя)
Jerry M.
-2

голосов
1

ответ
27

Просмотры

Python один лайнер в нормальный цикл

Я пытаюсь понять следующее Однострочник: гири = [0.0 для г в диапазоне (LEN (training_data [0]))] Я хотел бы понять, что это на самом деле говорит. Я думаю, что это говорит Добавляем [0,0] для весов список для каждого I в диапазоне длины training_data [0] Мне нужно преобразовать это один вкладыш к обычному для цикла. Следующие не дает такой же результат, как программа редактирования я позже жалуется на проблемы Numpy: веса = [] num_rows = training_data [0] для индекса в диапазоне (LEN (num_rows)): weights.append ([0,0]) Любые советы о том, как преобразовать один вкладыш к обычному ищет петлю ценятся.
Jerry M.
1

голосов
1

ответ
0

Просмотры

Используйте Numpy перебирать столбцы и скормить функционировать

CSV = numpy.random.shuffle (CSV) Возвращение CSV DEF Основной (): тест = csv_to_array ( 'ss.csv') функции = numpy.asarray (test.tolist () [: - 1]) # для столбца в особенности. Т: # печать ( "ПАУЗА") # печать (колонка) # currPerf = k_means (колонка 3) основные () Поэтому, когда я называю тест = csv_to_array ( 'ss.csv'). Для чего это стоит, ss.csv это данные ириса, установленный с каждым классом заменен на 0, 1 или 2 (что я потом удалить). Я получаю следующее: [[5,1 3,5 1,4 0,2 0] [4,9 3. 1,4 0,2 0] [4,7 3,2 1,3 0,2 0] [4,6 3,1 1,5 0,2 0] [5. 3,6 1,4 0,2 0] [5,4 3,9 1,7 0,4 0] [4,6 3,4 1,4 0,3 0] [5. 3,4 1,5 0,2 0] [4,4 2,9 1,4 0,2 0] [4,9 3,1 1,5 0,1 0] [5,4 3,7 1,5 0,2 0] [4,8 3,4 1,6 0,2 0] [4,8 3. 1,4 0,1 0] [4,3 3 . 1,1 0,1 0] [5,8 4. 1,2 0,2 ​​0] [5,7 4,4 1,5 0,4 0] ... ] Что я стремлюсь сделать, это быть в состоянии создать переменную, скажем test_columns и перебрать выше массива Numpy и один-на-один добавляемых к test_columns Так Итерации 1: `test_columns = [5,1] [4,9] [4,7] [4,6] [5. ] ...] `итерационные 2:` test_columns = [5,1 3,5] [4,9 3.] [4.7 3.2] [4.6 1.3] [5. 3,6] ...] `итерационные 3:` test_columns = [5.1 3.5 1.4] [4.9 3. 1.4] [4.7 3.2 1.3] [4.6 1.3 1.5] [5. 3,6 1,4] ...] `Etc. Как я в состоянии петли через Numpy массив, один столбец в то время, добавляя к новому Numpy массива. Новый NumPy массив будет оценен в дальнейшей функции. Я попытался для столбца в features.T транспонировать массив и я не получаю ожидаемые результаты. Любая помощь приветствуется. и итерации по приведенной выше массива Numpy и один за одним, добавляемых к test_columns So Итерация 1: `test_columns = [5,1] [4,9] [4,7] [4,6] [5. ] ...] `итерационные 2:` test_columns = [5,1 3,5] [4,9 3.] [4.7 3.2] [4.6 1.3] [5. 3,6] ...] `итерационные 3:` test_columns = [5.1 3.5 1.4] [4.9 3. 1.4] [4.7 3.2 1.3] [4.6 1.3 1.5] [5. 3,6 1,4] ...] `Etc. Как я в состоянии петли через Numpy массив, один столбец в то время, добавляя к новому Numpy массива. Новый NumPy массив будет оценен в дальнейшей функции. Я попытался для столбца в features.T транспонировать массив и я не получаю ожидаемые результаты. Любая помощь приветствуется. и итерации по приведенной выше массива Numpy и один за одним, добавляемых к test_columns So Итерация 1: `test_columns = [5,1] [4,9] [4,7] [4,6] [5. ] ...] `итерационные 2:` test_columns = [5,1 3,5] [4,9 3.] [4.7 3.2] [4.6 1.3] [5. 3,6] ...] `итерационные 3:` test_columns = [5.1 3.5 1.4] [4.9 3. 1.4] [4.7 3.2 1.3] [4.6 1.3 1.5] [5. 3,6 1,4] ...] `Etc. Как я в состоянии петли через Numpy массив, один столбец в то время, добавляя к новому Numpy массива. Новый NumPy массив будет оценен в дальнейшей функции. Я попытался для столбца в features.T транспонировать массив и я не получаю ожидаемые результаты. Любая помощь приветствуется. 9 3. 1.4] [4.7 3.2 1.3] [4.6 1.3 1.5] [5. 3,6 1,4] ...] `Etc. Как я в состоянии петли через Numpy массив, один столбец в то время, добавляя к новому Numpy массива. Новый NumPy массив будет оценен в дальнейшей функции. Я попытался для столбца в features.T транспонировать массив и я не получаю ожидаемые результаты. Любая помощь приветствуется. 9 3. 1.4] [4.7 3.2 1.3] [4.6 1.3 1.5] [5. 3,6 1,4] ...] `Etc. Как я в состоянии петли через Numpy массив, один столбец в то время, добавляя к новому Numpy массива. Новый NumPy массив будет оценен в дальнейшей функции. Я попытался для столбца в features.T транспонировать массив и я не получаю ожидаемые результаты. Любая помощь приветствуется.
Jerry M.
1

голосов
1

ответ
569

Просмотры

VBA для Excel даты редактирования в формате DD-MMM-YYYY?

Доброе утро, я пишу сегодня, чтобы увидеть, если какой-либо из VBA Wizards здесь может помочь мне отформатировать дату в Excel правильно с помощью VBA. Я посмотрел на другие решения, и это не совсем помогло. Я использую VBA взять запись из страницы, а затем отформатировать его должным образом, то на самом деле редактировать его в SQL-строку, что у меня есть, что будет проходить через к базе данных Oracle. Поэтому мне нужна дата, чтобы быть в: DD-MMM-YYYY, вроде как «17-Oct-2017», используя сегодняшнюю дату. Мой текущий код выглядит следующим образом:. Range ( "A1") Выберите Selection.NumberFormat = "d-MMM-YYYY" Date = UserSheet1.Cells (1, 1) в клетке, по-видимому правильно, но когда я ссылаться на «дата» переменной в моем коде, это выглядит как 10/17/2017. Может кто-нибудь помочь? Спасибо заранее за ваше время
Jerry M.
1

голосов
3

ответ
1.6k

Просмотры

Создать связанный список символов на стеке?

У меня есть задание, которое я борюсь с. Написать код на основе ссылки на основе стеки для осуществления проверки балансовой пользовательского ввода строки с «{», «}», «(», «)», и «[» и «]». Например, если пользователь вводит «(ABC [d] е {е})», код должен сказать, что выражение является сбалансированным. У меня есть функции PUSH / поп уже написано: общественное аннулируются толчок (Object newItem) {верхний = новый узел (newItem, сверху); } // конец нажмите поп общественности Object () {если {Node температура = сверху (IsEmpty) (!); сверху = top.getNext (); вернуть temp.getItem (); } Еще {System.out.print ( "StackError на" + "поп: стек пуст"); возвращать нуль; } // конец, если} // конец поп Однако то, что я борюсь с является понимание того, как создать новый узел для каждого символа. Может кто-нибудь, пожалуйста, помогите мне?
Jerry M.
1

голосов
3

ответ
1.3k

Просмотры

Using tables and column titles in VLOOKUP

У меня очень трудное время с переходом моего ВПРА заявления от простого ссылающихся листов и диапазонов (которые работают как шарм), вместо этого используя имена таблиц и столбцов. Я пытаюсь сделать ВПР немного более прочным, как лист, где он тянет из будут постоянно изменяющиеся данные, поэтому столбец номер будут часто меняться. Таким образом, я хотел бы просто ссылаться на столбец по имени. Я преобразовал лист исходных данных в таблицу. Я назвал все столбцы надлежащим образом и проверил орфографию. Это ВПР работает отлично (в настоящее время): = ВПР (E6, 'Затраты' $ A $ 2: $ AE $ 84,19, FALSE), однако, что я хотел бы сделать, это сделать его следующим образом: = ВПР (E6, tblCosts [ Номер для заказа], tblCosts [июнь 2017], FALSE) Я возился с также пытаются использовать MATCH, который не работает либо: = ВПР (E31, tblCosts [Order Number], MATCH (F4, tblCosts [июнь 2017], FALSE), FALSE) UPDATE Эта формула теперь работает, но она возвращается номер заказа ... не стоимость за месяц. = ВПР (E31 (tblCosts [Номер заказа]), (tblCosts [июнь 2017]), FALSE) Обычно я бы продолжать пытаться это сам ... но я чувствую себя подавленным и пытался в течение нескольких часов. Будем признательны любому совету. Спасибо!!
Jerry M.
0

голосов
2

ответ
13

Просмотры

numpy - could not broadcast input unknown error

I am attempting to run the following code, but am getting the following error: line 71, in cross_validation folds[index] = numpy.vstack((folds[index], dataset[jindex])). ValueError: could not broadcast input array from shape (2,8) into shape (8) What is interesting is that when I print out the shapes of the two items I am trying to use in the vstack, they have the same shape (8,) I am trying to determine why this line of the function is failing. Any advice would be greatly appreciated. import numpy def csv_to_array(file): # Open the file, and load it in delimiting on the ',' for a comma separated value file data = open(file, 'r') data = numpy.loadtxt(data, delimiter=',') # Loop through the data in the array for index in range(len(data)): # Utilize a try catch to try and convert to float, if it can't convert to float, converts to 0 try: data[index] = [float(x) for x in data[index]] except Exception: data[index] = 0 except ValueError: data[index] = 0 # Return the now type-formatted data return data def create_folds(dataset): length = len(dataset) folds = numpy.empty_like(dataset) for index in range(5): tempArray = numpy.ndarray(shape=(1, length)) numpy.append(folds, tempArray) temp_class_array = numpy.ndarray(shape=(1,1)) numpy.append(folds, temp_class_array) return folds def class_distribution(dataset): dataset = numpy.asarray(dataset) num_total_rows = dataset.shape[0] num_columns = dataset.shape[1] classes = dataset[:,num_columns-1] classes = numpy.unique(classes) class_weights = [] for aclass in classes: total = 0 weight = 0 for row in dataset: if numpy.array_equal(aclass, row[-1]): total = total + 1 else: continue weight = float((total/num_total_rows)) class_weights.append(weight) class_weights = numpy.asarray(class_weights) return classes, class_weights def cross_validation(dataset): classes, class_weights = class_distribution(dataset) total_length = len(dataset) folds = create_folds(dataset) added_so_far = 0 for a_class, a_class_weight in zip(classes, class_weights): amt_for_fold = float(((a_class_weight * total_length) / 5)-1) for index in range(0,10,2): added = 0 for jindex in range(len(classes)): if added >= amt_for_fold: break if classes[jindex] == a_class: print(folds[index].shape) print(dataset[jindex].shape) folds[index] = numpy.vstack((folds[index], dataset[jindex])) # print(folds) folds[index + 1] = numpy.vstack((folds[index + 1], [classes[jindex]])) if index < 8: dataset = numpy.delete(dataset, jindex, 0) classes = numpy.delete(classes, jindex, 0) added_so_far = added_so_far + 1 for xindex in range(len(folds)): folds[xindex] = numpy.delete(folds[xindex], 0, 0) print(folds) return folds def main(): print("BEGINNING CFV") ecoli = csv_to_array('Classification/ecoli.csv') cross_validation(ecoli) main() On the following dataset: 0.61,0.45,0.48,0.5,0.48,0.35,0.41,0 0.17,0.38,0.48,0.5,0.45,0.42,0.5,0 0.44,0.35,0.48,0.5,0.55,0.55,0.61,0 0.43,0.4,0.48,0.5,0.39,0.28,0.39,0 0.42,0.35,0.48,0.5,0.58,0.15,0.27,0 0.23,0.33,0.48,0.5,0.43,0.33,0.43,0 0.37,0.52,0.48,0.5,0.42,0.42,0.36,0 0.29,0.3,0.48,0.5,0.45,0.03,0.17,0 0.22,0.36,0.48,0.5,0.35,0.39,0.47,0 0.23,0.58,0.48,0.5,0.37,0.53,0.59,0 0.47,0.47,0.48,0.5,0.22,0.16,0.26,0 0.54,0.47,0.48,0.5,0.28,0.33,0.42,0 0.51,0.37,0.48,0.5,0.35,0.36,0.45,0 0.4,0.35,0.48,0.5,0.45,0.33,0.42,0 0.44,0.34,0.48,0.5,0.3,0.33,0.43,0 0.44,0.49,0.48,0.5,0.39,0.38,0.4,0 0.43,0.32,0.48,0.5,0.33,0.45,0.52,0 0.49,0.43,0.48,0.5,0.49,0.3,0.4,0 0.47,0.28,0.48,0.5,0.56,0.2,0.25,0 0.32,0.33,0.48,0.5,0.6,0.06,0.2,0 0.34,0.35,0.48,0.5,0.51,0.49,0.56,0 0.35,0.34,0.48,0.5,0.46,0.3,0.27,0 0.38,0.3,0.48,0.5,0.43,0.29,0.39,0 0.38,0.44,0.48,0.5,0.43,0.2,0.31,0 0.41,0.51,0.48,0.5,0.58,0.2,0.31,0 0.34,0.42,0.48,0.5,0.41,0.34,0.43,0 0.51,0.49,0.48,0.5,0.53,0.14,0.26,0 0.25,0.51,0.48,0.5,0.37,0.42,0.5,0 0.29,0.28,0.48,0.5,0.5,0.42,0.5,0 0.25,0.26,0.48,0.5,0.39,0.32,0.42,0 0.24,0.41,0.48,0.5,0.49,0.23,0.34,0 0.17,0.39,0.48,0.5,0.53,0.3,0.39,0 0.04,0.31,0.48,0.5,0.41,0.29,0.39,0 0.61,0.36,0.48,0.5,0.49,0.35,0.44,0 0.34,0.51,0.48,0.5,0.44,0.37,0.46,0 0.28,0.33,0.48,0.5,0.45,0.22,0.33,0 0.4,0.46,0.48,0.5,0.42,0.35,0.44,0 0.23,0.34,0.48,0.5,0.43,0.26,0.37,0 0.37,0.44,0.48,0.5,0.42,0.39,0.47,0 0,0.38,0.48,0.5,0.42,0.48,0.55,0 0.39,0.31,0.48,0.5,0.38,0.34,0.43,0 0.3,0.44,0.48,0.5,0.49,0.22,0.33,0 0.27,0.3,0.48,0.5,0.71,0.28,0.39,0 0.17,0.52,0.48,0.5,0.49,0.37,0.46,0 0.36,0.42,0.48,0.5,0.53,0.32,0.41,0 0.3,0.37,0.48,0.5,0.43,0.18,0.3,0 0.26,0.4,0.48,0.5,0.36,0.26,0.37,0 0.4,0.41,0.48,0.5,0.55,0.22,0.33,0 0.22,0.34,0.48,0.5,0.42,0.29,0.39,0 0.44,0.35,0.48,0.5,0.44,0.52,0.59,0 0.27,0.42,0.48,0.5,0.37,0.38,0.43,0 0.16,0.43,0.48,0.5,0.54,0.27,0.37,0 0.06,0.61,0.48,0.5,0.49,0.92,0.37,1 0.44,0.52,0.48,0.5,0.43,0.47,0.54,1 0.63,0.47,0.48,0.5,0.51,0.82,0.84,1 0.23,0.48,0.48,0.5,0.59,0.88,0.89,1 0.34,0.49,0.48,0.5,0.58,0.85,0.8,1 0.43,0.4,0.48,0.5,0.58,0.75,0.78,1 0.46,0.61,0.48,0.5,0.48,0.86,0.87,1 0.27,0.35,0.48,0.5,0.51,0.77,0.79,1 0.52,0.39,0.48,0.5,0.65,0.71,0.73,1 0.29,0.47,0.48,0.5,0.71,0.65,0.69,1 0.55,0.47,0.48,0.5,0.57,0.78,0.8,1 0.12,0.67,0.48,0.5,0.74,0.58,0.63,1 0.4,0.5,0.48,0.5,0.65,0.82,0.84,1 0.73,0.36,0.48,0.5,0.53,0.91,0.92,1 0.84,0.44,0.48,0.5,0.48,0.71,0.74,1 0.48,0.45,0.48,0.5,0.6,0.78,0.8,1 0.54,0.49,0.48,0.5,0.4,0.87,0.88,1 0.48,0.41,0.48,0.5,0.51,0.9,0.88,1 0.5,0.66,0.48,0.5,0.31,0.92,0.92,1 0.72,0.46,0.48,0.5,0.51,0.66,0.7,1 0.47,0.55,0.48,0.5,0.58,0.71,0.75,1 0.33,0.56,0.48,0.5,0.33,0.78,0.8,1 0.64,0.58,0.48,0.5,0.48,0.78,0.73,1 0.11,0.5,0.48,0.5,0.58,0.72,0.68,1 0.31,0.36,0.48,0.5,0.58,0.94,0.94,1 0.68,0.51,0.48,0.5,0.71,0.75,0.78,1 0.69,0.39,0.48,0.5,0.57,0.76,0.79,1 0.52,0.54,0.48,0.5,0.62,0.76,0.79,1 0.46,0.59,0.48,0.5,0.36,0.76,0.23,1 0.36,0.45,0.48,0.5,0.38,0.79,0.17,1 0,0.51,0.48,0.5,0.35,0.67,0.44,1 0.1,0.49,0.48,0.5,0.41,0.67,0.21,1 0.3,0.51,0.48,0.5,0.42,0.61,0.34,1 0.61,0.47,0.48,0.5,0,0.8,0.32,1 0.63,0.75,0.48,0.5,0.64,0.73,0.66,1 0.71,0.52,0.48,0.5,0.64,1,0.99,1 0.72,0.42,0.48,0.5,0.65,0.77,0.79,2 0.79,0.41,0.48,0.5,0.66,0.81,0.83,2 0.83,0.48,0.48,0.5,0.65,0.76,0.79,2 0.69,0.43,0.48,0.5,0.59,0.74,0.77,2 0.79,0.36,0.48,0.5,0.46,0.82,0.7,2 0.78,0.33,0.48,0.5,0.57,0.77,0.79,2 0.75,0.37,0.48,0.5,0.64,0.7,0.74,2 0.59,0.29,0.48,0.5,0.64,0.75,0.77,2 0.67,0.37,0.48,0.5,0.54,0.64,0.68,2 0.66,0.48,0.48,0.5,0.54,0.7,0.74,2 0.64,0.46,0.48,0.5,0.48,0.73,0.76,2 0.76,0.71,0.48,0.5,0.5,0.71,0.75,2 0.84,0.49,0.48,0.5,0.55,0.78,0.74,2 0.77,0.55,0.48,0.5,0.51,0.78,0.74,2 0.81,0.44,0.48,0.5,0.42,0.67,0.68,2 0.58,0.6,0.48,0.5,0.59,0.73,0.76,2 0.63,0.42,0.48,0.5,0.48,0.77,0.8,2 0.62,0.42,0.48,0.5,0.58,0.79,0.81,2 0.86,0.39,0.48,0.5,0.59,0.89,0.9,2 0.81,0.53,0.48,0.5,0.57,0.87,0.88,2 0.87,0.49,0.48,0.5,0.61,0.76,0.79,2 0.47,0.46,0.48,0.5,0.62,0.74,0.77,2 0.76,0.41,0.48,0.5,0.5,0.59,0.62,2 0.7,0.53,0.48,0.5,0.7,0.86,0.87,2 0.64,0.45,0.48,0.5,0.67,0.61,0.66,2 0.81,0.52,0.48,0.5,0.57,0.78,0.8,2 0.73,0.26,0.48,0.5,0.57,0.75,0.78,2 0.49,0.61,1,0.5,0.56,0.71,0.74,2 0.88,0.42,0.48,0.5,0.52,0.73,0.75,2 0.84,0.54,0.48,0.5,0.75,0.92,0.7,2 0.63,0.51,0.48,0.5,0.64,0.72,0.76,2 0.86,0.55,0.48,0.5,0.63,0.81,0.83,2 0.79,0.54,0.48,0.5,0.5,0.66,0.68,2 0.57,0.38,0.48,0.5,0.06,0.49,0.33,2 0.78,0.44,0.48,0.5,0.45,0.73,0.68,2 0.78,0.68,0.48,0.5,0.83,0.4,0.29,3 0.63,0.69,0.48,0.5,0.65,0.41,0.28,3 0.67,0.88,0.48,0.5,0.73,0.5,0.25,3 0.61,0.75,0.48,0.5,0.51,0.33,0.33,3 0.67,0.84,0.48,0.5,0.74,0.54,0.37,3 0.74,0.9,0.48,0.5,0.57,0.53,0.29,3 0.73,0.84,0.48,0.5,0.86,0.58,0.29,3 0.75,0.76,0.48,0.5,0.83,0.57,0.3,3 0.77,0.57,0.48,0.5,0.88,0.53,0.2,3 0.74,0.78,0.48,0.5,0.75,0.54,0.15,3 0.68,0.76,0.48,0.5,0.84,0.45,0.27,3 0.56,0.68,0.48,0.5,0.77,0.36,0.45,3 0.65,0.51,0.48,0.5,0.66,0.54,0.33,3 0.52,0.81,0.48,0.5,0.72,0.38,0.38,3 0.64,0.57,0.48,0.5,0.7,0.33,0.26,3 0.6,0.76,1,0.5,0.77,0.59,0.52,3 0.69,0.59,0.48,0.5,0.77,0.39,0.21,3 0.63,0.49,0.48,0.5,0.79,0.45,0.28,3 0.71,0.71,0.48,0.5,0.68,0.43,0.36,3 0.68,0.63,0.48,0.5,0.73,0.4,0.3,3 0.74,0.49,0.48,0.5,0.42,0.54,0.36,4 0.7,0.61,0.48,0.5,0.56,0.52,0.43,4 0.66,0.86,0.48,0.5,0.34,0.41,0.36,4 0.73,0.78,0.48,0.5,0.58,0.51,0.31,4 0.65,0.57,0.48,0.5,0.47,0.47,0.51,4 0.72,0.86,0.48,0.5,0.17,0.55,0.21,4 0.67,0.7,0.48,0.5,0.46,0.45,0.33,4 0.67,0.81,0.48,0.5,0.54,0.49,0.23,4 0.67,0.61,0.48,0.5,0.51,0.37,0.38,4 0.63,1,0.48,0.5,0.35,0.51,0.49,4 0.57,0.59,0.48,0.5,0.39,0.47,0.33,4 0.71,0.71,0.48,0.5,0.4,0.54,0.39,4 0.66,0.74,0.48,0.5,0.31,0.38,0.43,4 0.67,0.81,0.48,0.5,0.25,0.42,0.25,4 0.64,0.72,0.48,0.5,0.49,0.42,0.19,4 0.68,0.82,0.48,0.5,0.38,0.65,0.56,4 0.32,0.39,0.48,0.5,0.53,0.28,0.38,4 0.7,0.64,0.48,0.5,0.47,0.51,0.47,4 0.63,0.57,0.48,0.5,0.49,0.7,0.2,4 0.69,0.65,0.48,0.5,0.63,0.48,0.41,4 0.43,0.59,0.48,0.5,0.52,0.49,0.56,4 0.74,0.56,0.48,0.5,0.47,0.68,0.3,4 0.71,0.57,0.48,0.5,0.48,0.35,0.32,4 0.61,0.6,0.48,0.5,0.44,0.39,0.38,4 0.59,0.61,0.48,0.5,0.42,0.42,0.37,4 0.74,0.74,0.48,0.5,0.31,0.53,0.52,4
Jerry M.
1

голосов
1

ответ
0

Просмотры

Numpy Массив Манипуляция Основа внутренних значений

Я пытаюсь выполнить странное задание. Мне нужно выполнить следующие действия без использования sklearn, и предпочтительно с NumPy: С учетом набора данных, разделить данные на 5 равных «складки», или разделы в пределах каждого раздела, разделить данные на «обучение» и «тестирование» набор с 80/20 расколом Вот это улов: Ваш набор данных помечаются для классов. Так возьмите, например, набор данных с 100 экземпляров и класса А с 33 образцами и класс В 67 образцах. Я должен создать 5 складок 20 экземпляров данных, где в каждой складке, класс А имеют что-то вроде 6 или 7 (1/3) значений и класса B имеют остальные мой вопрос, что: я не знаю, как правильно возвращать тест и обучение устанавливается для каждого раза, несмотря на возможность разделить его надлежащим образом, и, что более важно, Я не знаю, как включить надлежащее разделение # элементов в классе. Мой текущий код здесь. Он отметил, где я застрял: импорт NumPy четкости csv_to_array (файл): # Откройте файл и загрузить его в разграничении на «» для файла данных значений, разделенных запятыми = открыт (файл, „г“) данных = NumPy .loadtxt (данные, ограничителем = «») # Перебор данных в массиве для индекса в диапазоне (LEN (данных)): # Использование в попытке поймать, чтобы попытаться преобразовать плавать, если он не может преобразовать плавать , преобразует в 0 раза: данные [индекс] = [с плавающей точкой (х) для х в данных [индекс]] за исключением того, исключение: данные [индекс] = 0, за исключением ValueError: данные [индекс] = 0 # Возвращает теперь типа отформатированный данные возвращать данные четкости five_cross_fold_validation (набор данных): # печать (» ] Fold_testing = раз [: split_mark] # Каким-то образом вернуть тестирование и обучение установить в каждой кратном # Потенциально удалить все элементы в складку, затем добавить обучение и тестирование объектов здесь, так что «складка» объект теперь содержит два подменю подготовки объектов и тестирование? # Печать (сгибы) возвращение складки Защиты confirm_size (сгибы): общие = 0 для сгиба в складках: CURR = Len (раз) общий = общие + CURR возвращают общую четкость основной (): печать ( "Начало CFV") ecoli = csv_to_array ( 'Классификация / ecoli.csv') печати (Len (ecoli)) складывает = five_cross_fold_validation (ecoli) размер = confirm_size (сгибы) печати (размер) основной () Кроме того, для справки, я прилагаю мой файл CSV я работаю с ним ( является модификацией UCI Ecoli Dataset.) 0.61,0.45,0.48,0.5,0.48,0.35,0.41,0 0,17,
Jerry M.
1

голосов
2

ответ
49

Просмотры

SELECT INTO с помощью объединения двух старых таблиц

Я пытаюсь выдать SELECT * INTO FROM инструкции, где мой оператор выбора является результатом объединения двух других таблиц. В формате псевдокод, он будет выглядеть следующим образом: SELECT * FROM UNION ALL SELECT * FROM INTO Ни одно из моих текущих попыток были действительными. Может ли кто-нибудь предложить предложение?
Jerry M.
1

голосов
2

ответ
24

Просмотры

Возьмите образец массива без NumPy или панд в питоне

Я пытаюсь создать «вещий» способ взять небольшое подмножество очень большого массива в Python. Я в настоящее время в формате CSV с 58 столбцов и 4960 строк со следующими кодами: Защита import_normal_csv (файл): # Создать пустые результаты Array = [] # Открыть файл с открытым (файлом) как csvfile: # считывает в изменении значений файла поплавки читателя = csv.reader (csvfile, цитирует = csv.QUOTE_NONNUMERIC) для строки в читателе: results.append (строка) возвращаемые результаты Защиты основные (): печать ( "Working СПАМ Dataset ...") # Создание исходного массива данных без NumPy spam_raw_data = import_normal_csv ( 'spam.csv') # CREATE подмножества sPAM_RAW_DATA ЗДЕСЬ random.shuffle (spam_raw_data) Я видел различные способы, чтобы сделать это с помощью NumPy или панд, но я хотел бы сделать это, естественно, без этих библиотек. Вместо моего массивного массива, как бы я вместо того, чтобы взять лишь ... 500 строк (или некоторое произвольное число значительно меньше, чем почти 5000)?
Jerry M.
0

голосов
2

ответ
24

Просмотры

Правильно перебирать ndarray

Я пытаюсь создать цикл, который позволит мне петлю через оба Numpy массивов и поплавки, в частности, ndarray и float64. Мой текущий код: Защита euclidean_distance (а, б): печать (типа (а)) печать (тип (б)) total_distance = 0 для индекса в диапазоне (LEN (а)): total_distance = total_distance + ((а [индекс ] - б [индекс]) * (а [индекс] - б [индекс])) total_distance = Math.sqrt (total_distance) возвращение total_distance Мой результат: Traceback (самый последний вызов последнего): Файл «D: / ML / WiP_KMeans .py», строка 289, в главной () Файл "D: /ML/WiP_KMeans.py", строка 286, в основных k_means (тест, 3) Файл "D: /ML/WiP_KMeans.py", строка 239, в k_means centroid_error = centroid_error + get_centroid_error (currCent, oldCent) Файл "D:" /ML/WiP_KMeans.py, строка 70, в get_centroid_error total_error = total_error + euclidean_distance (центроида [индекс], old_centroid [индекса]) Файл "D:" /ML/WiP_KMeans.py, строка 48, в euclidean_distance для индекса в диапазоне (LEN (а)): Ошибка типа: объект типа «numpy.float64» не имеет LEN () Я пробовал использовать различные варианты nditer от Numpy документации, но не нашел решение, которое позволит мне правильно перебирать либо ndarray или поплавок для вычисления евклидова расстояния. Пример нормального ввода может быть что-то вроде = [0,3, 5,4, 3,2, 11,0] и В = [0,0, 5,0, 31,3, 2,0]. Я включил некоторые примеры, здесь: [5.9, 3.0, 5.1, 1.8] - [5.1, 3.3, 1.7, 0.5] [5.9, 3.0, 5.1, 1.8] - [4.8, 3.4, 1.9, 0.2] [5.9, 3.0 , 5.1, 1.8] - [5.0, 3.0, 1.6, 0.2] [5.9, 3.0, 5.1, 1.8] - [5.0, 3.4, 1.6, 0.4] [5.9, 3.0, 5.1, 1.8] - [5.2, 3.5, 1.5 0,2] [5.
Jerry M.
1

голосов
1

ответ
28

Просмотры

K Means in Python from Scratch

У меня есть код питона для алгоритма K-средних. Я с трудом понимая, что он делает. Линии как C = X [numpy.random.choice (X.shape [0], к, замените = False),:] очень запутанной для меня. Может кто-нибудь объяснить, что этот код на самом деле делает? Спасибо DEF k_means (данные, K, num_of_features): # Создать матрицу из данных X = data.as_matrix () # Получить K случайных точек из данных C = X [numpy.random.choice (X.shape [0 ], к, замените = False),:] # Удалить последнюю Col C = [C [J] [: - 1] для J в диапазоне (LEN (C))] # превратить его в NumPy массив C = NumPy. asarray (с) # для того, чтобы сохранить значение центроиды, когда он обновляет C_old = numpy.zeros (C.shape) # Сделать массив, который будет назначать кластеры для каждой точки кластеров = numpy.zeros (LEN (Х)) # Ошибка Func.
Jerry M.
0

голосов
3

ответ
30

Просмотры

Python Script Не удается получить значения ячеек

Я пытаюсь выполнить, казалось бы, простую задачу в Python. Это уже мой третий пост в SO столько дней, и я смущен. Я надеюсь, чтобы открыть файл CSV. Я хотел бы цикл по каждой строке, и для каждого столбца в каждой строке, если значение не 0 или 1 (это «?»), По существу переписать это значение со значением самого последнего столбца. Самый последний столбец никогда не может быть 0 или 1. Он никогда не будет «?». Я не столько обеспокоен заявлением для печати, так как я замена «?» (Или не 0/1) значение со значением в последнем столбце. Я приложил файл пример CSV я работаю с здесь: http://www.sharecsv.com/s/7bef636c33054cae624928297146bae1/house.csv Если вы не можете просмотреть по ссылке выше, я вставил образец ниже набора данных: 0.00,1.00,0.00,1.00,1.00,1.00,0.00,0.00,0.00,1.00,?, 1,00, ) Счетчик = 0 для строки в считывающем: # печать ( "Открытые чтения") CURRVAL = строка [: - 1] Счетчик = счетчик +-# печати ( "установить значение") для столбца в строке: questioncount = 0 # печати (» Циклические столбцы "), если (колонка = 0 или столбец = 1):! questioncount = questioncount +-# Это где я должен перезаписать значение печати (" строка "ул (счетчик +) +" имеет "ул (questioncount) + + «вопросительные знаки») Я не понимаю, почему я с таким трудом. В настоящее время выход PyCharm является то, что он говорит, каждый ряд и колонка имеет знак вопроса, который не является правдой.
Jerry M.
1

голосов
2

ответ
59

Просмотры

Неожиданное TypeError Python: при использовании скаляров

Я в настоящее время работаю над реализацией алгоритма наивного Байеса для машинного обучения. Я новичок в Python и, на мой взгляд, сильно отличается от Java. Я посмотрел на другие ответы, что означает, что ошибка происходит потому, что я передаю массив, когда он ожидает значение. Я не знаю об этом. Я уверен, что я просто передавая значение. Линия, 97, является: экспоненциальная = Math.exp (- (Math.pow (FEATURE_VALUE-среднее, 2) / (2 * Math.pow (стандартное_отклонение, 2)))) Полный текст ошибки: Traceback ( самый последний вызов последнего): Файл "D: /Personal/Python/NB.py", строка 153, в главной () Файл "D: /Personal/Python/NB.py", строка 148, в основных предсказаний = getPredict ( резюме, testing_set) Файл "D: /Personal/Python/NB.py", строка 129, в классификации getPredict = предсказать (результаты, TestData [индекс]) Файл "D: /Personal/Python/NB.py", строка 117, в вероятности предсказать = Классифицировать (feature_summaries, классификации) Файл "D: /Personal/Python/NB.py", строка 113, в кЛАССИФИЦИРУЙТЕ вероятности [классы] = [вероятность классы] * GaussianProbabilityDensity (FEATURE_VALUE, значит, стандартное_отклонение) Файл "D: /Personal/Python/NB.py", строка 97, в GaussianProbabilityDensity экспоненциальный = Math.exp (- (Math.pow ( FEATURE_VALUE-средний, 2) / (2 * Math.pow (стандартное_отклонение, 2)))) TypeError: только размер-1 массивы могут быть преобразованы в Python скаляры весь мой сценарий можно найти ниже. Я был бы признателен кто-то помогает мне понять, что я делаю неправильно. Я потянув меня за волосы, пытаясь понять это. статистика импорта импорта Numpy импорта по математике четкости csv_to_array (файл): # Откройте файл, и загрузить его в разграничении на «» для разделенных запятыми данных значений Файл = открытый (файл, „R“) данных = numpy.loadtxt (данные, разделителей = «») # Цикл по данным в массиве для индекса в диапазоне (LEN (данные)): # Использование в попытке поймать, чтобы попытаться преобразовать плавать, если он не может преобразовать, чтобы плавать, преобразует в 0 попробовать: данные [индекс] = [с плавающей точкой (х) для х в данных [ индекс]] кроме ValueError: данные [индекс] = 0 # Возвратить теперь типа отформатированные возвращаемые данные данных # функции, которая использует Numpy библиотеки для рандомизации набора данных. Защиту randomize_data (CSV): CSV = numpy.random.shuffle (CSV) возвращение CSV # Функция для разделения данных в тест и обучение устанавливает # 67% данных используются для обучения, в то время как 33% используются для проверки четкости split_data ( CSV): # Вызов функции Randomize данных randomize_data (CSV) # грейферный число строк и вычислить, где разделить num_rows = csv.shape [0] split_mark = INT (num_rows / 3) # Split данные training_set = CSV [: split_mark] test_set = CSV [split_mark:] # Возвращение два набора данных возврата training_set, test_set ############### Наивные Функции Байеса ############### # В для того, чтобы должным образом реализовать алгоритм NB классификаторов, ряд математических функций и, в определенной степени #, данные функции обработки должны быть написаны. Как только это будет сделано, мы можем прогнозировать классификации в nb_main функциональности #. # Первое, что нужно сделать: Узнайте, какие имеют значения относятся к каждому классу. По сути, создать карту # из значений признаков для классов. Защиту separate_classes (input_data): # Создать список классификации # Мы только делаем бинарные в этом случае классификация = {} # создать переменную для вашего SizeOf петли = диапазон (Len (input_data)) # Loop через входные данные. # Добавление классификаций (последний столбец) в список, если он уже не появляется на индекс в SizeOf: currRow = input_data [индекс], если (currRow [-1] не в классификации): классификации [currRow [-1]] = [ .] классификации [currRow [-1]] добавить в конец (currRow) возвратные классификации # Второе, что нужно сделать: Определите, какие средства и стандартные отклонения для каждого атрибута для каждого класса # для достижения этой цели мы Виль использовать еще один список с функция почтового индекса, который учитывает значение группировки # Это будет производить итерацию список для каждой строки данных четкости summarize_features (input_data): Первый из которых является # Gaussian плотности вероятности. Цель будет иметь возможность etermine вероятность # данного значения признака для данного класса. Опять же, классы здесь только 0 и 1 Защиту GaussianProbabilityDensity (FEATURE_VALUE, значит, стандартное_отклонение): # Объявляют значение для гауссовой плотности вероятности GPD = 0 # Определить экспоненту, необходимый для расчета экспоненциального = Math.exp (- (Math.pow (FEATURE_VALUE-среднее, 2) / (2 * Math.pow (стандартное_отклонение, 2)))) # Вычислить и вернуть GPD в результате выполнения функции GPD = (1 / (Math.sqrt (2 * Math.PI ) * стандартное_отклонение) * экспоненциальная) вернуться GPD # следующий шаг, чтобы попытаться классифицировать данные, а не только определить его GPD # Это делается путем определения вероятности того, что определенный набор данных функций принадлежит к классу # Тогда, testing_set = split_data (MyData) резюме = summarize_features_by_class (training_set) предсказания = getPredict (резюме, testing_set) точность = getAccuracy (testing_set, предсказание) печати ( 'Точность: {0}%'). Формат (точность), если __name__ == «__main__ «: основной () Если это полезно, то bd.csv ниже. Следует отметить, у меня есть два других алгоритмов, которые работают на этом наборе просто отлично. | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
Jerry M.
1

голосов
3

ответ
13.7k

Просмотры

MAX () НАД PARTITION BY в Oracle SQL

Я пытаюсь использовать MAX () OVER PARTITION BY функции оценить самую последнюю квитанцию ​​для определенной части, что моя компания купила. Ниже приведен пример таблицы информации для нескольких частей от прошлого года: | VEND_NUM | VEND_NAME | RECEIPT_NUM | RECEIPT_ITEM | RECEIPT_DATE | | ---------- | -------------- | ------------- | --------- - | -------------- | | 100 | SmallTech | 2001 | 5844HAJ | 11/22/2017 | | 100 | SmallTech | 3188 | 5521LRO | 12/31/2017 | | 200 | RealSolution | 5109 | 8715JUI | 05/01/2017 | | 100 | SmallTech | 3232 | 8715JUI | 11/01/2017 | | 200 | RealSolution | 2101 | 4715TEN | 01.01.2017 | Как вы можете видеть, третий и четвертый ряд показывает два различных производителей для ОДНОГО номера детали. Вот мой текущий запрос: С - различные другие подзапросов выше ... AllData AS (SELECT VEND_NUM, VEND_NAME, RECEIPT_NUM, RECEIPT_ITEM, RECEIPT_DATE ОТ tblVend INNER JOIN tblReceipt ПО VEND_NUM = RECEIPT_VEND_NUM ГДЕ VEND_NUM = '100' или 'VEND_NUM = 200' И RECEIPT_DATE> = '01 -2017' -январь), SELECT MAX (RECEIPT_DATE) OVER PARTITION BY (RECEIPT_ITEM) AS "Recent Date", RECEIPT_ITEM ОТ AllData Мой возвращаемый набор выглядит следующим образом: | Последняя Дата | RECEIPT_ITEM | | ------------- | -------------- | | 11/22/2017 | 5844HAJ | | 12/31/2017 | 5521LRO | | 11/01/2017 | 8715JUI | | 11/01/2017 | 8715JUI | | 01.01.2017 | 4715TEN | Тем не менее, он должен выглядеть следующим образом: | Последняя Дата | RECEIPT_ITEM | | ------------- | -------------- | | 11/22/2017 | 5844HAJ | | 12/31/2017 | 5521LRO | | 11/01/2017 | 8715JUI | | 01.01.2017 | 4715TEN | Может кто-нибудь пожалуйста, дать совет относительно того, что я делаю неправильно? Похоже, он просто заменить самую последнюю дату, не давая мне только строки, я хочу, чтобы это самый последний. В конце концов, я хотел бы, чтобы мой стол, чтобы выглядеть следующим образом. Тем не менее, я не знаю, как использовать MAX () или MAX () OVER PARTITION BY () функции должным образом, чтобы для этого: | VEND_NUM | VEND_NAME | RECEIPT_NUM | RECEIPT_ITEM | RECEIPT_DATE | | ---------- | -------------- | ------------- | --------- - | -------------- | | 100 | SmallTech | 2001 | 5844HAJ | 11/22/2017 | | 100 | SmallTech | 3188 | 5521LRO | 12/31/2017 | | 100 | SmallTech | 3232 | 8715JUI | 11/01/2017 | | 200 | RealSolution | 2101 | 4715TEN | 01.01.2017 |
Jerry M.
2

голосов
1

ответ
52

Просмотры

Using sed to replace the same text line in multiple files

In my current directory (projDir), I have about 41 folders as follows: ProgOneDir ProgTwoDir ProgThreeDir ... ProgFortyOneDir ...etc (I did not come up with the naming scheme and I am not a systems admin so please don't yell at me for them). Inside each of the subfolders, there are README.md files I need to edit. Instead of going into each subfolder and editing the files there, I would like to use a sed command to do so. The files are consistently named README.md I am running CentOS7 My current command is: find . -name 'README.md' -exec sed -i -e 's/./makeprog $MAKE_FLAGS CFLAGS="-I/usr/local/include/libtool" OFLAGS="-L/usr/local/lib"/./makeprog/g' {} \; Essentially, I need to switch: ./makeprog $MAKE_FLAGS CFLAGS="-I/usr/local/include/libtool" OFLAGS="-L/usr/local/lib to ./makeprog Would somebody be able to assist? The error I get is: sed: -e expression #1, char 43: unknown option to `s' I have already looked at: Using sed to replace text between strings How to replace a path with another path in sed? Some other online resources I believe my error is arising with the ./command. I have followed advice of switching all / to +, but that still didn't work, as I got the following error: sed: -e expression #1, char 110: unterminated `s' command Thank you.
Jerry M.
2

голосов
1

ответ
719

Просмотры

Excel VBA to assign employees to tasks using loops

Good afternoon, I am working on an innovative project and cannot seem to figure out the logic of what I need to do. Essentially, I am trying to assign a number of employees to tasks (right now just filling in numbers instead of their names and the actual tasks). Here is a basic look at what the spreadsheet looks like Task | Task Location | Task Materials | Difficulty | Assignee | Employee List There are currently 45 tasks, and 30 employees. What I need to do is: Randomly assort the list of employees to randomize who is doing what Check to see IF the employee has already been scheduled for 2 tasks, as everybody should have AT LEAST one with nobody having less than two Loop through the "Employee List" column, IF the Task is blank AND the Employee hasn't been scheduled for more than 2 tasks already, copy that current value from Employee List into Assignee column. I know this is vague, but I really would appreciate the help. I think the steps are three fold: Randomize Employee List column Assign each employee once Re-randomize employee list Check to see which tasks still need assigning, and then check to see if the employee has already been scheduled for 2, and, if not, assign them If they have, skip over and move to the next one Could anybody help me devise a solution? Here is my current code, which sorts the column, and works well: Sub ShufflePA() Application.ScreenUpdating = False Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer, lastRow As Integer With Sheets("Test") lastRow = .Range("F" & .Rows.count).End(xlUp).Row End With For i = 6 To lastRow Cells(i, 7).Value = WorksheetFunction.RandBetween(0, 1000) Next i For i = 6 To lastRow For j = i + 1 To lastRow If Cells(j, 7).Value < Cells(i, 7).Value Then 'change the string, which is the pa column... tempString = Cells(i, 6).Value Cells(i, 6).Value = Cells(j, 6).Value Cells(j, 6).Value = tempString tempInteger = Cells(i, 7).Value Cells(i, 7).Value = Cells(j, 7).Value Cells(j, 7).Value = tempInteger End If Next j Next i Worksheets("Test").Range("N:N").EntireColumn.Delete Application.ScreenUpdating = True End Sub I recognize I'll likely need some more subs, and would be willing to work with anybody who could help me. In advance, thank you very much. I am struggling to develop the logic to accomplish what I need.
Jerry M.
3

голосов
2

ответ
1.5k

Просмотры

Цикл по колонку, значения хранят в массиве

Доброе утро, я пытаюсь найти способ: Петля через колонку (колонка Б) принять значения, хранить их в массиве Loop через этот массив и сделать какой-нибудь текст манипуляции Однако, я не могу придумать способ петли через столбец и принимать эти значения, сохраняя их в массиве. Я посмотрел через переполнение стека и Google, но не нашел удачное решение (пока). Заранее спасибо за вашу помощь. Sub collectNums () дим eNumStorage () As String 'начальное массив хранения данных, чтобы принимать значения Dim I As Integer Dim J как целое Dim lrow As Integer lrow = Cells (Rows.Count, "B"). End (xlUp) .Row' The количество материала в колонке I = lrow для 2 Шаг -1 Если (не IsEmpty (Cells (я, 2) .Value)) Then 'проверяет, чтобы убедиться, значение не пусто я = eNumStorage' Я знаю, что это ISN '
Jerry M.
3

голосов
1

ответ
13.1k

Просмотры

Uncaught TypeError: Не удается прочитать свойство «сделки» в нуль с индексированной

Я получаю сообщение об ошибке «Uncaught TypeError: Не удается прочитать свойство„сделки“нулевых», когда в этом разделе кода remoteDB.indexedDB.addAdmins = функция () {вар дб = remoteDB.indexedDB.db; вар транс = db.transaction ( "студенты", "READWRITE"); Запрос вар = trans.objectStore ( "администраторы"); / * Этот раздел вырезаны после сбоя на линии 3 * / request.onsuccess = функция (е) {console.log ( "успех Добавление:", д); }; request.onerror = функция (е) {console.log (e.value); }; };
Jerry M
1

голосов
2

ответ
51

Просмотры

Oracle SQL - регулярные выражения, используя regexp_replace ()

Доброе утро, я в надежде найти помощь в написании запроса на выборку, чтобы удалить текст из колонки. Я создал колонку под названием «TEXT_MINING» в предыдущем запросе, что некоторый код другой разработчик написал будет выполнять некоторые горнодобывающие анализ текста на. Колонка TEXT_MINING имеет текст, который выглядит следующим образом: СОТРУДНИК НАЙДЕНО СЛОМАННОЙ РУЧКИ HAMMER * 02-08-18 15:19:22 PM * Я нашел молоток, который имел раскол дерева на ручке, бросил в металлолом. Я хочу, чтобы удалить * и весь текст между двумя *, чтобы помочь моему инженер-программист сделать какой-нибудь текст добычи. Вот моя текущая дилемма: не только я не знаю, как использовать regexp_replace, но я не могу получить REGEXP сработал. В настоящее время я: ^ [*] \ ш [*] $ Так выглядит как: regexp_replace (цв, '^ [*] \ ш [*] $', '') Может кто-нибудь посоветовать? Спасибо!
Jerry M.
1

голосов
3

ответ
713

Просмотры

Randomly Assign Employees to Tasks

This is a follow-up to a previous question that I had. I was provided an answer, but due to my own inexperience and inability, I can't seem to implement it properly. My situation is as follows: I need to assign a list of employees to tasks. There will always be MORE tasks than employees. Each employee must be assigned to at least ONE No employee should be assigned to more than two I need the employee list to randomize during the sorting process so the same employees don't get the same tasks over and over Where I am coming up short is finding a way that starts "assigning" employees, keeps track of how many times the array(i) employee has been assigned, and if it's greater than two, move onto the next. An awesome user tried helping me here: Excel VBA to assign employees to tasks using loops Here is the "test" table I am working with: Here is the macro I have written to sort my list of employees, which works: Sub ShuffleEmp() ' This macro's intention is to shuffle the current liste of process assessors Application.ScreenUpdating = False Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer, lastRow As Integer ' this grabs the last row with data, so that it can be dynamic With Sheets("Test") lastRow = .Range("M" & .Rows.Count).End(xlUp).Row End With ' this assumes ALWAYS 45 tasks ' starting row 6, going until row 35 For i = 6 To lastRow ' row 6, column 14 (next to Emp column) to start.... Cells(i, 14).Value = WorksheetFunction.RandBetween(0, 1000) Next i 'now it has assigned random values... For i = 6 To lastRow For j = i + 1 To lastRow '14 is the number column... If Cells(j, 14).Value < Cells(i, 14).Value Then 'change the string, which is the Emp column... tempString = Cells(i, 13).Value Cells(i, 13).Value = Cells(j, 13).Value Cells(j, 13).Value = tempString tempInteger = Cells(i, 14).Value Cells(i, 14).Value = Cells(j, 14).Value Cells(j, 14).Value = tempInteger End If Next j Next i Worksheets("Test").Range("N:N").EntireColumn.Delete Application.ScreenUpdating = True End Sub Here is the macro for turning that list into an array: Sub EmpArray() ' This stores the column of Emps as an array Dim Storage() As String ' initial storage array to take values Dim i As Long Dim j As Long Dim lrow As Long lrow = Cells(Rows.Count, "M").End(xlUp).Row ' The amount of stuff in the column ReDim Storage(1 To lrow - 5) For i = lrow To 6 Step -1 If (Not IsEmpty(Cells(i, 13).Value)) Then ' checks to make sure the value isn't empty j = j + 1 Storage(j) = Cells(i, 13).Value End If Next i ReDim Preserve Storage(1 To j) For j = LBound(Storage) To UBound(Storage) ' loop through the previous array MsgBox (Storage(j)) Next j End Sub
Jerry M.