算額あれこれ

算額問題をコンピュータで解きます

R 用の indent その1

source("プログラムファイル.R", keep.source=FALSE)
dump("関数名", file="新プログラムファイル.R")

難点 元のプログラムについている注釈が全部なくなる

元のプログラム testsource.R

test<-function(x,y,z){
n<-length(x)
result<-numeric(n)
for(i in 1:n){result[i]<-(x[i]+y[i])*z[i]}
return(result)}

source("testsource.R", keep.source=FALSE)
dump("test", file="new.testsource.R")

インデントされたプログラム new.testsource.R

test <-
function (x, y, z)
{
    n <- length(x)
    result <- numeric(n)
    for (i in 1:n) {
        result[i] <- (x[i] + y[i]) * z[i]
    }
    return(result)
}

同じようなことであるが,以下のようにしてもよい

> source("testsource.R", keep.source=TRUE)
> print(test)
function(x,y,z){
n<-length(x)
result<-numeric(n)
for(i in 1:n){result[i]<-(x[i]+y[i])*z[i]}
return(result)}
> print(test, useSource=FALSE)
function (x, y, z)
{
    n <- length(x)
    result <- numeric(n)
    for (i in 1:n) {
        result[i] <- (x[i] + y[i]) * z[i]
    }
    return(result)
}