33

我一直在向数据框添加列并使用View()它来检查它是否符合我的预期。我重复了以下代码行:

x$p <- 3 * x$a
x$q <- sqrt(x$b + x$c)
View(x)

这工作正常,直到列数超过 100(有 47,000 行)。当我添加另外两列时,dim(x)显示 102 列,names(x)显示 102 个名称,summary(x)显示所有预期列的摘要。但是,View(x)仅显示前 100 列,不显示最后添加的两列。

如果我尝试View(x[,-(1:10)])显示最近添加的列。

我在查看文档中看不到任何关于列数限制的提及。谁能解释这里发生了什么?

4

6 回答 6

20

更新

您可以View()在其中一个象限或单独的记事本式窗口中打开。它在我的工作机器上显示我的源代码的象限中打开,在我家机器上的另一个窗口中打开。在后一种情况下,它显示 >1k 行和 >100 列(我刚刚检查过)。

我不确定如何永久更改它,IIRC 当我更新 RStudio 并第一次运行View()时,弹出一个窗口并要求我选择我想用来显示文件的程序。在一种情况下,我选择RStudio了 ,而在另一种情况下,我选择了notepad。在这两种情况下,都选择了“从现在开始默认使用此程序”单选按钮;从那以后我再也没有见过这个窗口。如果您可以切换到使用记事本显示,您应该能够摆脱这个问题。 但是,如果没有永久更改,您可以View()使用代码在单独的窗口中显示您的数据utils::View()。这种方法适用于我的工作机器。这是它的样子:

在此处输入图像描述

请注意,我在 Windows 7 机器上运行 RStudio 版本 0.97.248。

这是它在我的家用机器上的样子,它会自动出现在一个新窗口中:

在此处输入图像描述

于 2013-10-13T15:20:22.687 回答
14

我在 RStudio 中也看到了这个问题x <- matrix(1:200,nrow=1); View(x),但在 vanilla R 中没有。这是一个已知的限制,他们正在努力解决这个问题。您可以在他们的论坛上联系开发人员以提供您的反馈(并且已经这样做了,我明白了)。

于 2013-10-21T14:41:00.707 回答
6

我也遇到了这个问题。正如上面的 gung 所建议的,该utils::View()函数作为一种解决方法有助于浏览数据框中的所有可用列,而 Rstudio 在使用该View()函数时仍默认仅显示前 100 个可用列。

该解决方法对于识别用于从现有数据框创建子集的列名非常有用。但是,它不提供 RStudioView()函数允许的快速列枚举。距离 2013 年的原始帖子已经过去了几年,但 RStudio 环境中的这种限制似乎在今天的 2017 年仍然有效。

于 2017-04-14T23:18:27.300 回答
3

试试fix()。它加载所有列和行。唯一的问题是加载大型数据帧可能需要很长时间。

于 2017-04-19T23:17:09.700 回答
0

我不确定之前是否已经提到过,但我发现了 2012 年的这篇有趣的帖子:https: //support.rstudio.com/hc/en-us/community/posts/200669267-view-more-than-first- 100 列- .

此索引允许您至少检查其他列以及它们是否存在。

所以只需使用:datafile[row-row, column-column]

于 2017-11-15T13:03:30.513 回答
0

我在一个封闭的 RStudio Github 问题中找到了一个对我有用的解决方案。您可以使用以下命令更改显示的最大列数(例如 1000):

rstudioapi::writeRStudioPreference("data_viewer_max_columns", 1000L)

您应该能够只运行一次,然后它将作为新的默认值保存到您的设置文件中,在随后的每个 R 会话中。在我的 Linux 系统下,这些首选项存储在 ~/.config/rstudio/rstudio-prefs.json 中。上述命令将添加的相关行是:

"data_viewer_max_columns":1000
于 2021-09-16T15:43:28.347 回答