我一直在向数据框添加列,并使用View()来检查它是否符合我的预期。我有重复的代码行:
x$p <- 3 * x$a
x$q <- sqrt(x$b + x$c)
View(x)
这个工作正常,直到列数超过100(有47,000行)。当我添加另外两列时,dim(x)显示102列,名称(x)显示102个名称,summary(x)显示所有预期列的摘要。但是,View(x)仅显示前100列,并且不显示最后添加的两列。
如果我尝试查看(x [, - (1:10)]),则会显示最近添加的列。
我在View文档中看不到列数限制的任何提及。谁能解释一下这里发生了什么?
答案 0 :(得分:17)
(已更新)
您可以在其中一个象限或单独的记事本窗口中打开View()
。它在象限中打开,我的源代码在我工作的机器上显示,在我家机器的另一个窗口中显示。在后一种情况下,它显示&gt; 1k行&amp; &gt; 100列(我刚检查过)。
我不确定如何更改永久,IIRC,当我更新RStudio并第一次运行View()
时,会弹出一个窗口并要求我选择程序我想用来显示文件。在一个案例中,我选择了RStudio
,而在另一个案例中,我选择了notepad
。在这两种情况下,选择'从现在开始默认使用此程序'单选按钮;从那以后我从未见过这个窗口。如果您可以切换到使用记事本显示,您应该能够摆脱这个问题。 但是,如果没有永久性更改,您可以使用代码View()
让utils::View()
在单独的窗口中显示您的数据。这种方法可以在我的机器上工作。这是它的样子:
请注意,我在Windows 7计算机上运行RStudio版本0.97.248。
以下是我的家用机器上自动显示的内容:
答案 1 :(得分:13)
我也在RStudio中看到x <- matrix(1:200,nrow=1); View(x)
这个问题,但在vanilla R中没有看到这个问题。这是一个已知的限制,they're working on it。您可以在他们的论坛上联系开发者以提供您的反馈(我已经这样做了。)
答案 2 :(得分:6)
我也遇到了这个问题。正如上面的gung所建议的,utils::View()
函数作为浏览数据框中所有可用列的解决方法很有用,而Rstudio在使用View()
函数时仍然默认只有前100个可用列。
该解决方法对于识别用于从现有数据框创建子集的列名非常有用。但是,它没有提供RStudio View()
函数允许的快速列枚举。距离2013年的原始帖子已经过了几年,但是在今天的2017年,RStudio环境中的这种限制似乎仍然有效。
答案 3 :(得分:2)
试试fix()
。它会加载您的所有列和行。唯一的问题是加载大型数据帧可能需要很长时间。
答案 4 :(得分:0)
我不确定之前是否曾提到这一点,但我发现2012年这篇有趣的帖子: https://support.rstudio.com/hc/en-us/community/posts/200669267-view-more-than-first-100-columns-
此索引允许您至少检查其他列以及它们是否存在。
所以只需使用:datafile [row-row,column-column]。