long/bigint/decimal эквивалентный тип данных в R

Чтобы скрыть столбец, вы можете использовать либо команду JavaScript после bootstrapTable('load',..), если вы ее использовали, либо в блоке готовности документа:

$table.bootstrapTable('hideColumn', 'name')

, показанном на сайте Bootstrap-Table: bootstrap-table.com: showColumn-hideCoulumn

или, если вы определяете в таблице, добавьте data-visible = "false" в столбец, который хотите скрыть. bootstrap-table.com: видимые опции столбцов т.е.

Для кнопок - я не уверен, для какого типа это проект, - но я решил это, добавив кнопки ссылок к строкам таблицы через data-formatter - читайте об этом в документации API bootstrap-table.com/docs/api/column-options/#formatter

Я использовал найденные примеры на github.com/wenzhixin/bootstrap-table/issues/1765 - в разделе «Формат» -> «Основной формат» - где показано, как добавить ссылку (кнопка с помощью Bootstrap CSS). Чтобы сделать ссылку специфичной для строки, используйте row [], чтобы получить значение поля, или вы можете даже использовать столбец id вместо того, чтобы скрывать его, если это ваше поле (используйте 'value' вместо row [] затем - см. Примеры). Я сделал что-то вроде:

затем в блоке javascript

5 ответов

См. help(integer):

 Note that on almost all implementations of R the range of
 representable integers is restricted to about +/-2*10^9: ‘double’s
 can hold much larger integers exactly.

, поэтому я бы рекомендовал использовать numeric (т. Е. «Double») - число с двойной точностью.

20
ответ дан Dirk Eddelbuettel 28 November 2019 в 02:39
поделиться

Есть много опций, которые вы можете использовать для R для большого числа. Вы также можете использовать as.numeric (). Проблема с as.numeric () заключается в том, что я обнаружил ошибку в функции для версии R 3.02. Если вы умножаете числа, используя тип данных as.numeric (), и числа приводят к результату длиной около 16 цифр, вы получите результат ошибки. Эта ошибка as.numeric () была протестирована на многих библиотеках.

Есть еще один вариант.

Я написал две программы для R, одна называется infiX, а другая - infiXF для R. Эта библиотека в настоящее время поддерживает только вычисления умножения. Они оба рассчитывают числа с точностью до десятичного знака. Был проверен более 100 000 раз. infiX будет работать с числом в строковом формате, где infiXF будет переносить его в базу файловой системы.

Когда вы сохраняете номер в памяти, вы ограничены 8 - 128 Гб в зависимости от вашей памяти. Иногда даже меньше, если компилятор не позволяет вам использовать все доступные ресурсы. Когда вы вычисляете числа на основе текстового файла, вы можете рассчитать 1/5 размера жесткого диска. Единственная проблема заключается в том, сколько времени потребуется для расчета.

Например, если я вычислял 1 терабайт цифр в другой терабайт цифр. Это около 2 триллионов цифр. Это выполнимо на жестком диске 8 терабайт. Тем не менее, у меня есть время, чтобы сделать расчет?

InfiX для R можно найти здесь. http://kevinhng86.iblog.website/2017/02/21/working-with-number-infinity-multiplication-optimised-the-code-r/

1
ответ дан Kevin Ng 28 November 2019 в 02:39
поделиться

Я понял ваш вопрос немного по-другому против двух, которые опубликовали раньше.

Если R'S наибольшее значение по умолчанию не достаточно велико для вас, у вас есть несколько вариантов (отказ от ответственности: я использовал каждую из библиотек, которые я упоминаю ниже, но не через привязки R, вместо этого через другие привязки языка или нативную библиотеку )

Пакет BROBDINGNAG : использует натуральные журналы для хранения значений; (Как RMPFR, реализуемый с использованием новой классной структуры R). Я всегда впечатлен кем-то, чья работа требует номеров этого масштаба.

library(Brobdingnag)

googol <- as.brob(1e100)   

Пакет GMP : R Bindings к почтерю GMP (многоточная библиотека GNU). Это должно вернуться 20 лет, потому что я использовал его в университете. Девиз этой библиотеки является «арифметикой без ограничений», который является достоверной претензией - целые числа, рациональные, поплавки, что угодно, вплоть до предела оперативной памяти на вашей коробке.

library(gmp)

x = as.bigq(8000, 21)

Пакет RMPFR : r Привязки, которые интерфейс для как GMP (выше), так и MPFR, (MPFR, включают в себя современную реализацию GMP. Я использовал привязки Python («Bigfload») и может Рекомендую это высоко. Это может быть ваш лучший вариант трех, учитывая его объем, учитывая, что, по-видимому, наиболее активно поддерживается, и, наконец, учитывая то, что, по-видимому, является самой тщательной документацией.

Примечание: для использования либо Последних последних, вам нужно установить собственные библиотеки, GMP и MPFR .

23
ответ дан 28 November 2019 в 02:39
поделиться

Дирк прав. Вы должны использовать тип Тип (который должен быть установлен на двойной). Другое, что следует отметить, что вы не можете получить все цифры. Посмотрите на цифры. Настройка:

> options("digits")
$digits
[1] 7

Вы можете продлить это:

options(digits=14)

В качестве альтернативы вы можете переформатировать номер:

format(big.int, digits=14)

я проверил ваш номер и получаю то же поведение (даже с использованием данных Double Тип), так что это может быть ошибкой:

> as.double("123456789123456789")
[1] 123456789123456784
> class(as.double("123456789123456789"))
[1] "numeric"
> is.double(as.double("123456789123456789"))
[1] TRUE
8
ответ дан 28 November 2019 в 02:39
поделиться

Это то, как я делаю это: я получаю из сетки, чтобы сохранить все это внутри класса, поэтому я присоединяюсь к обработчикам событий внутри

, присоединяясь к событию сортировки

dataGrid.Sorting += new DataGridSortingEventHandler(SortHandler);

реализую метод (я делаю это в производном классе)

void SortHandler(object sender, DataGridSortingEventArgs e)
{
    DataGridColumn column = e.Column;

    IComparer comparer = null;

    //i do some custom checking based on column to get the right comparer
    //i have different comparers for different columns. I also handle the sort direction
    //in my comparer

    // prevent the built-in sort from sorting
    e.Handled = true;

    ListSortDirection direction = (column.SortDirection != ListSortDirection.Ascending) ? ListSortDirection.Ascending : ListSortDirection.Descending;

    //set the sort order on the column
    column.SortDirection = direction;

    //use a ListCollectionView to do the sort.
    ListCollectionView lcv = (ListCollectionView)CollectionViewSource.GetDefaultView(this.ItemsSource);

    //this is my custom sorter it just derives from IComparer and has a few properties
    //you could just apply the comparer but i needed to do a few extra bits and pieces
    comparer = new ResultSort(direction);

    //apply the sort
    lcv.CustomSort = comparer;
}
-121--1536132-

Просто чтобы перейти к функциям в текущем файле? Используйте меню imenu . Это самая простая и легкая из всех альтернатив, перечисленных до сих пор, и может быть достаточно для того, что вы хотите. Он также встроен в Emacs и имеет минимальные трудности установки. Имеет графические и текстовые интерфейсы. Все дополнительно , и вам будет лучше воспользоваться одним из других отличных предложений, сделанных здесь.

-121--2255852-

Я исправил несколько проблем, связанных с целыми числами в rpy2 (Python может переключаться от int к длинному, когда это необходимо, но R, кажется, не в состоянии сделать это. Теперь целочисленные переполнения должны возвращать NA_integer_.

L.

3
ответ дан 28 November 2019 в 02:39
поделиться
Другие вопросы по тегам:

Похожие вопросы:

ID View Links