readLines unknown n

时间:2013-04-16 01:56:24

标签: r

在gui中(无论是Windows gui还是RStudio等),我可以通过指定readLines从具有已知行数的脚本中使用n=?,如下所示。如果我不确定正在读取的行数(即,我有很多行并且不知道n),该怎么办?如何在不指定n的情况下在gui中使用readLines(从非外部文件中读取脚本)?如果您不提供n,则显示readLines保持连接打开并继续读取行。点击esc会停止该功能,但不会读取任何行。

x <- readLines(n=4)
** preparing package for lazy loading
** help
*** installing help indices
** building package indices

x

Here is a video演示我要问的具体问题。

当海报以奇怪的格式(如下面的设置)为您提供数据并且您想要在不计算所有行的情况下读取数据时,此功能特别有用:

** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** preparing package for lazy loading
** help
*** installing help indices
** building package indices

编辑直到重新开放,Dason才能自己回答......

Dason建议使用ctrl + z,这可行(至少在Windows机器上)

3 个答案:

答案 0 :(得分:1)

两个简单的解决方案。

  1. 将文本放入另一个文件中,然后阅读。

  2. 请勿使用readLines。引用文字:

  3. x <- strsplit("** preparing package for lazy loading
    ** help
    *** installing help indices
    ** building package indices
    ", "\n")
    
    
    x
    [[1]]
    [1] "** preparing package for lazy loading" "** help"                               "*** installing help indices"          
    [4] "** building package indices"          
    

答案 1 :(得分:1)

您可以在文本周围加上引号并创建textConnection来阅读

text <- "** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** preparing package for lazy loading
** help
*** installing help indices
** building package indices"

readLines(textConnection(text))
# [1] "** preparing package for lazy loading" "** help"                              
# [3] "*** installing help indices"           "** building package indices"          
# [5] "** preparing package for lazy loading" "** help"                              
# [7] "*** installing help indices"           "** building package indices"          
# [9] "** preparing package for lazy loading" "** help"                              
#[11] "*** installing help indices"           "** building package indices"          
#[13] "** preparing package for lazy loading" "** help"                              
#[15] "*** installing help indices"           "** building package indices"          
#[17] "** preparing package for lazy loading" "** help"                              
#[19] "*** installing help indices"           "** building package indices"  

答案 2 :(得分:1)

在选择并复制到剪贴板后的Windows环境中:

 (clip.input <- readLines( file("clipboard") ) )

在Mac / UNIX中:

 (clip.input <- readLines( pipe("pbpaste") ) )