Этот вопрос уже имеет ответ здесь:
У меня есть некоторые очень большие разграниченные файлы данных, и я хочу обработать только определенные столбцы в R, не не торопясь и памяти для создания a data.frame
для целого файла.
Единственные опции, о которых я знаю, read.table
который очень расточителен, когда я только хочу несколько столбцов или scan
который кажется слишком низким уровнем для того, что я хочу.
Существует ли более оптимальный вариант, или с чистым R или возможно обращающийся к некоторому другому сценарию оболочки, чтобы сделать извлечение столбца и затем использующий сканирование или read.table на, оно производится? (Который приводит к вопросу, как назвать сценарий оболочки и получить его вывод в R?).
Иногда я делаю что-то подобное, когда у меня есть данные в файле с разделителями табуляцией:
df <- read.table(pipe("cut -f1,5,28 myFile.txt"))
Это позволяет cut
выполнять выбор данных, что можно сделать без использования большого количества памяти.
См. Только чтение ограниченного числа столбцов для чистой версии R с использованием «NULL»
в аргументе colClasses
в read.table
].
Я думаю, что подход Дирка прост и быстр. Альтернативой, которую я использовал, является загрузка данных в sqlite, который загружается НАМНОГО быстрее, чем read.table (), а затем извлекает только то, что вы хотите. пакет sqldf () упрощает все это. Вот ссылка на предыдущий ответ о переполнении стека, в котором приводятся примеры кода для sqldf ().
Вероятно, это больше, чем вам нужно, но если вы работаете с очень большими наборами данных, вы также можете посмотреть в пакет HadoopStreaming , который предоставляет подпрограмму сокращения карты с использованием Hadoop .
Лучший способ стать лучше - это нанимать только тех, кто хочет стать лучше. Тогда вы должны поддерживать этих людей, когда они совершают ошибки в поисках лучшего. Тот путь они не боятся пробовать новое.
Есть поговорка, которую я слышал в США: «Наймите людей с GPA менее 3,9 (из 4,0)»; это отражает цель нанять людей, которые не сделали идеально (то есть они научились быть не идеальными).
Одним из лучших способов стать лучше является «бережливое» мышление, которое породило методологии Agile, а также значительное количество успешных примеров в производстве.
Общая идея состоит в том, чтобы постоянно участвовать в итеративном процессе самооценки и никогда не тратить ресурсы или иметь блоки в рабочем процессе. К этому, конечно, нужно относиться с осторожностью: исследовательские проекты настолько плохо определены, что их почти нельзя поставить на конвейер, и большая часть разработки программного обеспечения - это исследование.
Для языка ваши разработчики должны быть осведомлены о последних вопросах безопасности, их установки должны быть обновлены ИТ-персоналом, компания должна финансировать некоторое количество учебных материалов, будь то курсы, книги, конференции или то, что у вас есть.
В целом, общая концепция заключается в том, что качество - это бизнес каждого, и это нормально, чтобы занять время, чтобы сделать это правильно .
-121--3603160- Текстовые поля не вызывают метод OnPaint (см. раздел Примечание
на этой страницы
). Способ обойти это, чтобы поместить текстовое поле в панель, которая немного больше. Затем измените цвет фона при каждом нажатии кнопки. Поток на форумах MSDN содержит несколько решений.
Изменить Чтобы уточнить решение панели, просто создайте панель и добавьте в нее текстовое поле: Например,
private void MyForm_Load(object sender, EventArgs e)
{
myPanel.Controls.Add(tbxLastName); //Make sure the panel size is slightly bigger than the text box (so that it looks like a border)
}
Затем обработайте событие нажатия кнопки:
private void myButton_Click(object sender, EventArgs e)
{
if (tbxLastName.Text == "")
{
myPanel.BackColor = Color.Red;
}
else
{
myPanel.BackColor = Color.Transparent;
}
}
-121--4817706- Одна из возможностей состоит в том, чтобы использовать pipe ()
вместо имени файла и чтобы awk
или подобные фильтры извлекали только нужные столбцы.
Дополнительные сведения о канале
и друзьях см. в справке (соединение)
.
Edit : read.table ()
также может сделать это для вас, если вы очень явно говорите о colClasses - значение NULL для данного столбца пропускает столбец alltogether. См. справку (read.table)
. Так что у нас есть решение в базе R без дополнительных пакетов или инструментов.