查看显示所有列的函数 - 使R非常慢

时间:2018-02-14 16:38:40

标签: r rstudio

出于一些奇怪的原因,当我使用View()函数或单击环境窗格中的数据框时,RStudio会向我显示data.frame的所有列。 我在三周前安装了新版本的R(因为我有一台新的Windows10笔记本电脑),从那时起我就遇到了这个问题。

这真令人讨厌,因为当显示超过100列时R变得非常慢。 随机的代码示例

{{1}}

在过去的好时光中,只显示了前100列......

有关如何将此更改恢复正常的任何想法?

2 个答案:

答案 0 :(得分:0)

您可以查看选定的列列表,如下所示:

df <- data.frame(a = c(1,2), b = c(1,2), c = c(1,2))
View(df[, c("a","b") ])

如果这仍需要很长时间才能渲染,请查看您是否拥有最新的RStudio版本。最近有一个错误,RStudio读取Windows网络驱动器的速度很慢,它会影响View()函数。它显然是在最新的RStudio版本中修复的。

顺便说一句,我很少再使用View()了。我现在在RMarkdown笔记本电脑上工作,该笔记本电脑以分页且易于阅读的格式自动呈现数据集的快照,可以容纳大型数据集而没有任何问题。而且我还没有遇到任何延迟问题。

答案 1 :(得分:0)

我对大于300000行的长数据帧有此问题。如果我View() df,RStudio会话将冻结。不幸的是,我经常使用View()来检查结果,但是我常常忘记确保df不会太大。为了防止这种情况,我编写了上面评论中推荐的功能。我花了一些时间弄清楚如何使名称像View()一样显示,所以我想与大家分享。

RStudioView <- View
View <- function(x) {
  name  <- deparse(substitute(x))
  if ("data.frame" %in% class(x)) { 
    RStudioView(x[1:1000,], name)
    } else { 
    RStudioView(x) 
    }
}

基于找到的功能here。您可以更改它以限制列而不是行,并设置最适合您的截止值。