Я недавно сделал это на своем проекте с помощью идеи, подобной точка Tyler 1 .
я загружал набор вопросов и выбирал пять наугад. Сортировка была достигнута с помощью IComparer.
aAll вопросы были загружены в список QuestionSorter, который был тогда отсортирован с помощью функция Вида Списка и первые k элементы, где выбрано.
private class QuestionSorter : IComparable
{
public double SortingKey
{
get;
set;
}
public Question QuestionObject
{
get;
set;
}
public QuestionSorter(Question q)
{
this.SortingKey = RandomNumberGenerator.RandomDouble;
this.QuestionObject = q;
}
public int CompareTo(QuestionSorter other)
{
if (this.SortingKey < other.SortingKey)
{
return -1;
}
else if (this.SortingKey > other.SortingKey)
{
return 1;
}
else
{
return 0;
}
}
}
Использование:
List unsortedQuestions = new List();
// add the questions here
unsortedQuestions.Sort(unsortedQuestions as IComparer);
// select the first k elements
Да, вот как :
Пользователи Windows могут использовать odbcConnectExcel в пакете RODBC. Это может выбрать строки и столбцы из любого листа в файле электронной таблицы Excel (по крайней мере, из Excel 97–2003, в зависимости от ваших драйверов ODBC: при прямом вызове odbcConnect можно прочитать версии обратно в Excel 3.0). Версия odbcConnectExcel2007 будет читать форматы Excel 2007, а также более ранние (при условии, что драйверы установлены: см. RODBC).
Другой (и даже переносимый) вариант - это read.xls
в пакете gdata . Он доступен для разных платформ, поскольку использует базовый код Perl для синтаксического анализа, чтения, ... данных из файла xls в файл csv, который затем читается. Все необходимые пакеты Perl предоставляются gdata .
Пакет Octave можно легко создать, используя тот же трюк.
На ваш вопрос уже дан ответ. На случай, если это поможет в будущем, действительно полезным ресурсом для таких вопросов является документ R Data Import / Export , который охватывает множество полезных API, пакетов, советов и т. Д. Для доступа к данным из некоторых общие базы данных и форматы файлов.
Например, есть раздел Excel , который охватывает большую часть уже предоставленных ответов.
Еще один полезный совет - попробовать поисковую систему справки R. Например, попробуйте выполнить одно из следующих действий в приглашении R:
> ??xls
> ??excel
EDIT: BTW, ?? xls
- это сокращение от help.search ("xls")
.
Самый простой способ - представить данные в виде CSV-файла, а затем использовать read.csv ()
для чтения данных. Имейте в виду, что когда вы читаете данные, R будет читать символьные строки и преобразовывать их в множители. Это может стать проблемой при попытке подмножества данных и т. Д.
В качестве альтернативы, если вы хотите прочитать его как собственный файл Excel, вы можете использовать пакет RODBC
.
library('RODBC')
yourData <- sqlFetch(odbcConnectExcel("yourData.xls"),
sqtable = "nameOfSheet",
na.strings = "NA",
as.is = TRUE)
odbcCloseAll()
Еще более простым решением для Windows является использование пакета xlsReadWrite . Нет необходимости в Perl, просто установите его как пакет R, и вы сможете читать и записывать файлы Excel сколько душе угодно.