【问题标题】:Viewing tables of data in R在 R 中查看数据表
【发布时间】:2010-11-09 21:23:33
【问题描述】:

我主要使用 head()、tail() 和 View() 来查看 R 中的表格,但我想知道是否有人使用更复杂的东西。我记得读过有 R Excel 接口可用(基于 COM 或 XLLoop?) - 有没有人使用一个来使用 Excel(或 OpenOffice)在 R 会话期间显示数据帧,而不一定只是产生最终结果导出到 csv 文件?

编辑:感谢所有建议。我想我应该指定我主要在 Mac 上运行 Emacs+ESS(这会取消 COM 和 Deducer 的资格),尽管我有时也会切换到 Linux 和 Windows。我猜 View() 仍然是我能找到的最好的多平台解决方案......

【问题讨论】:

  • ... View() 和 data.entry() 让我大吃一惊。我不知道我以前怎么没见过他们。

标签: r


【解决方案1】:

您可以使用基本数据编辑器查看数据

edit(your.data.frame)

【讨论】:

  • 谢谢 - 我对这个很熟悉,但它不是不如 View() 吗?类似,只是它等待你关闭窗口继续(最好调用invisible(edit(my.data.frame)))。
  • @crippledlambda -- edit() 允许您编辑数据,例如 temp <- edit(temp)。它使用您的默认编辑器,但我认为它会强制使用数据框的内置编辑器。要进行更复杂的数据框编辑,请在 tcltk2 包中使用 tk2edit()
【解决方案2】:

你可以运行utils::View(data)

另一种选择是打开一个新的 RStudio 窗口。只需在终端中运行就可以做到这一点(至少在 linux 上):rstudio 如果希望之后能够关闭终端,只需运行

nohup rstudio &

【讨论】:

    【解决方案3】:

    是的,我有时会在会话期间使用 Excel 查看 R 中的数据。我建议查看this blog post on the Learning R blog。我使用 RDCOMClient;它允许的不仅仅是导出/导入,但权衡会增加复杂性。

    编辑: 该博文中还有其他几种非 COM 解决方案,包括使用 ODBC。

    【讨论】:

    • 糟糕,忘记了 COM 是 Windows 的东西(我最近从它搬走了 - 想想看,我曾经玩过 RDCOM 很久以前)。但是这篇博文很有帮助。
    【解决方案4】:

    另一个优雅的选择是使用 DT

    if (!require("DT")) devtools::install_github("rstudio/DT")
    
    datatable(iris)
    

    这将在您的浏览器中打开一个分页、可排序和可过滤的表格。 有关示例,请参阅http://rstudio.github.io/DT/

    【讨论】:

    • 哇,太酷了。必须先安装 devtools,但它可以正常工作,看起来我可以使用。
    【解决方案5】:

    我使用以下函数查看数据帧中的行示例...我将它保存在我的启动中并一直使用它来运行检查...经常我会运行几次。 ..

    #
    # sample a couple of lines from a data frame
    #
    sample.df <- function(df, n=3, ordered=TRUE) {
        if(ordered) {
                df[sort(sample(nrow(df), min(nrow(df), n))),]
        } else {
                df[sample(nrow(df), min(nrow(df), n)),]
        }
    }
    

    【讨论】:

    • 啊,奇怪的是,我还把sample()变成了一个通用函数,并在我的.Rprofile中添加了一个数据框的方法!但只比 head() 和 tail() 稍微好一点...
    • 使用 sample.df() 而不是 head() 或 tail() 的优点是你最初不知道的 data.frame 经常有一个排序,所以我会经常使用这三个!
    【解决方案6】:

    演绎者的Data Viewer

    形成手册:

    可以使用 deducer("Data viewer") 或 data.viewer() 函数访问数据查看器

    那里还有许多其他有用的功能,所有这些都可以从命令界面获得。

    【讨论】:

    • 哦,我非常希望这是解决方案,但在 Mac 上,我似乎需要通过 JGR 运行它......我是 Emacs 极客。
    • @Stephen,它可以与 emacs 甚至终端一起愉快地工作。唯一没有菜单的东西。这就是 data.viewer() 函数的原因。我已经计划了一段时间为 emacs 的 deducer 编写一个菜单界面。从来没有认真过。希望到今年年底;)
    • 哦,破解,我现在明白了。它在 Mac 下不工作,抱歉不知道。
    【解决方案7】:

    fix 为我工作

    还有my.df[seq(1, nrow(my.df), nrow(my.df)/30),]

    【讨论】:

    • 谢谢,但也喜欢 edit.data.frame() 我认为,如果我没记错的话,View 更适合查看数据(您可能会不小心修改表中的值,并且它如果我没记错的话,用来转换变量类/模式)。
    【解决方案8】:

    由于edit 太基础,我倾向于在使用 R 时只在 Excel 中打开表格。为此,我将数据写入一个临时文件,然后使用 Excel 打开它:

    open_in_excel <- function(some_df){
        tFile<-tempfile(fileext=paste0(substitute(some_df), ".tsv"),tmpdir="~/tmp")
        write.table(some_df, tFile, row.names=F, sep="\t", quote=F)
        system(paste('open -a \"/Applications//Microsoft Office 2011/Microsoft Excel.app\"', tFile))
    }
    
    open_in_excel(iris)
    

    确定system调用需要根据使用的操作系统和Excel的安装路径进行调整。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      相关资源
      最近更新 更多