R выбрать строку фрейма данных в интерактивном режиме - PullRequest
4 голосов
/ 07 февраля 2012

У меня есть фрейм данных, скажем:

df <- data.frame(a=1:10,b=runif(10))

Я бы хотел иметь возможность отображать фрейм данных для пользователя, чтобы он выбирал (щелкал) строку, а извлекал эту строку .

Нечто похожее на edit(df), за исключением того, что мне нужно гораздо проще, мне не нужны функции редактирования - мне просто нужно прослушать событие щелчка в одной из строк и получить индекс для этот ряд (мне даже не нужна конкретная клетка!)

Кто-нибудь знает, как я могу это сделать? Я бы предпочел сделать это с базой R или grid (ради того, чтобы не добавлять много пакетов) - возможно, я смогу как-то нарисовать фрейм данных в виде сетки с масштабом y, заданным от 1 до nrow(df) и использовать функцию grid.locator()?

Было бы неплохо избегать добавления пакетов с графическим интерфейсом, но если я это сделаю, то это должно быть кросс-платформенным (linux / windows). gwidgets довольно хорошо (хотя, похоже, что событие click не интегрировано с их виджетом gdf).

веселит.

Ответы [ 2 ]

7 голосов
/ 07 февраля 2012

хорошо, вот быстрый способ, без дополнительных пакетов, но вам, возможно, придется возиться с форматированием, если вы хотите, чтобы таблица была хорошо выровнена, округлена и т. Д .:

    df <- data.frame(a=1:10,b=runif(10))
    df[menu(apply(df,1,paste,collapse="  "),graphics=TRUE),]

Устройство расширяется при необходимости, и полосы прокрутки автоматически появляются при необходимости.

0 голосов
/ 07 февраля 2012

Я собирался предложить комбинацию пустого графика, заполненного addtable2plot, а затем использовать locator, чтобы выбрать точку и вычислить строку с комбинацией y-спецификации и cellheight <- max(strheight(c(column.names, row.names, as.vector(unlist(table))), ... ноусилия в этом направлении кажутся глупыми, так как @timrifle, кажется, ударил гвоздь по голове.

...