看板Statistics
标 题Re: [问题] R
发信站无名小站 (Mon Jan 22 01:17:15 2007)
转信站ptt!Group.NCTU!grouppost!Group.NCTU!wretch
※ 引述《[email protected] (~烤焦面包~)》之铭言:
> 抱歉,我重复一次我的问题,没有讲的很明白,可能有人误会了。
> 我有一个 command.R 的档案,放在 c: 下,里面的内容是
> sink("c:\\sink.txt" );
> i <- 1:10 ;
> outer(i, i, "*") ;
> sink();
首先, 每一行末的分号 ";" 是多余的!
虽然在 R 中可用分号来将两个执行项写在同一行,
但在这应是 SAS 的习惯不当引用吧?!
> 然後我在 R 的 command line 下指令
> > source("c:\\command.R")
> 要 R 帮我执行 command.R 的内容。
> R 确实会帮我生成 sink.txt 这个档案,可是 sink.txt 里面却没有任何的资料?
Trick: 将
outer(i, i, "*")
改为
print(outer(i, i, "*"))
即可.
顺代一提的是, 这可简化为 print(outer(i, i)),
因为
> str(outer)
function (X, Y, FUN = "*", ...)
这个 trick 同样需要在如下於 Console 中执行的 loop.
> for(n in 3:5) {
+ outer(1:n, 1:n)
+ }
>
> for(n in 3:5) {
+ print(outer(1:n, 1:n))
+ }
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 2 4 6
[3,] 3 6 9
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 2 4 6 8
[3,] 3 6 9 12
[4,] 4 8 12 16
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 2 4 6 8 10
[3,] 3 6 9 12 15
[4,] 4 8 12 16 20
[5,] 5 10 15 20 25
> 如果是一行一行的打指令,sink.txt 的结果应该是下面这样才对
> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
> [1,] 1 2 3 4 5 6 7 8 9 10
> [2,] 2 4 6 8 10 12 14 16 18 20
> [3,] 3 6 9 12 15 18 21 24 27 30
> [4,] 4 8 12 16 20 24 28 32 36 40
> [5,] 5 10 15 20 25 30 35 40 45 50
> [6,] 6 12 18 24 30 36 42 48 54 60
> [7,] 7 14 21 28 35 42 49 56 63 70
> [8,] 8 16 24 32 40 48 56 64 72 80
> [9,] 9 18 27 36 45 54 63 72 81 90
> [10,] 10 20 30 40 50 60 70 80 90 100
> 还是我弄错了什麽东西?
> 有请版上的高手解惑了,谢谢。
--
夫兵者不祥之器物或恶之故有道者不处君子居则贵左用兵则贵右兵者不祥之器非君子
之器不得已而用之恬淡为上胜而不美而美之者是乐杀人夫乐杀人者则不可得志於天下
矣吉事尚左凶事尚右偏将军居左上将军居右言以丧礼处之杀人之众以哀悲泣之战胜以
丧礼处之道常无名朴虽小天下莫能臣侯王若能守之万物将自宾天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦将知止知止可以不殆譬道之在天下210.66.0.241海
Chris7462:谢谢,受教了。 01/22 01:17