2015-06-16 23 views
10

如何打印一个没有索引的长列表?如何打印没有索引的长列表?

输出我得到:

> print(1:100) 
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 
[19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 
[37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 
[55] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 
[73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 
[91] 91 92 93 94 95 96 97 98 99 100 

所需的输出:

> print(1:100) 
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 
91 92 93 94 95 96 97 98 99 100 

我试着用cat()功能,但它不这样做行的回报。

在此先感谢。

+0

试'猫(1:100)' –

+0

看我的编辑。不会给我想要的 – user2682877

回答

11

整洁的解决方案是cat,但使用它的fill参数,与format()函数相结合。

cat(format(1:100), fill = getOption("width")) 

这给

> cat(format(1:100), fill = getOption("width")) 
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 

我没有与各种载体试过这个知道,如果填料/分裂是不变的真理,但如果定位是重要的,可能适合您的需要是足够的。

这里使用format()的(而不是paste())的优点是,format()焊盘各个串到共同的长度

> format(1:10) 
[1] " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" " 9" "10" 

如果只是fill的catted数字载体或粘贴表示,对准仍然是off:

> cat(1:100, fill = getOption("width")) 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 
> cat(paste(1:100), fill = getOption("width")) 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 
4

考虑在适当组成的字符串使用writeLines()strwrap()

writeLines(strwrap(paste(1:100, collapse = " "))) 

这给

> writeLines(strwrap(paste(1:100, collapse = " "))) 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 
100 

这不是很你想要什么,但接近。您需要格式化每个单独的字符元素以获得正确的填充。问题的

部分原因是strwrap()破坏所有的空白......

+0

加上一个'strwrap' –

10

尝试选项

fill =TRUE 

cat() 

下面是一个例子:

> cat(paste(1:100), fill=TRUE) 

它会根据屏幕的宽度断线。

+1

加1,打我一秒 –