R交互选择数据帧行

时间:2012-02-07 12:18:54

标签: r dataframe interactive

我有一个数据框,比如:

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

我希望能够向用户显示数据框并让他们选择(单击)一行,然后检索该行

有点像edit(df),除了我想要的更简单,因为我不需要编辑功能---我只需要在其中一行上侦听点击事件并获取该行的索引(我甚至不需要特定的单元格!)

有谁知道我怎么做到这一点?我更喜欢使用基数R或grid(为了不添加大量的包) - 也许我可以以某种方式在网格图形上绘制数据框,其中的比例从1到{定义{1}}并使用nrow(df)函数?

避免引入gui包很不错,但如果我这样做,它应该是跨平台的(linux / windows)。 grid.locator()非常好(虽然他们似乎没有将click事件与他们的gwidgets小部件很好地集成)。

欢呼声。

2 个答案:

答案 0 :(得分:7)

嗯,这是一个快速的方法,没有额外的包,但如果你想让表格很好地对齐,圆形等,你可能不得不摆弄格式:

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

如有必要,设备会自动扩展,必要时会自动显示滚动条。

答案 1 :(得分:0)

我打算建议填充addtable2plot的空白图表,然后使用locator选择一个点并使用y规范和{{1}的组合计算行},但是在这个方向上的努力似乎很愚蠢,因为@timrifle似乎已经敲了敲头。