2017年7月4日 星期二
私校師退休金領9萬?教團斥浮誇:別在傷口上灑鹽
2016年12月4日 星期日
Computing and visualizing PCA in R__Cool_good
https://www.r-bloggers.com/computing-and-visualizing-pca-in-r/
Computing and visualizing PCA in R
prcomp from the stats package. I will also show how to visualize PCA in R using Base R graphics. However, my favorite visualization function for PCA is ggbiplot, which is implemented by Vince Q. Vu and available on github. Please, let me know if you have better ways to visualize PCA in R.iris dataset for the demonstration. The data contain four continuous variables which corresponds to physical measures of flowers and a categorical variable describing the flowers’ species.# Load data data(iris) head(iris, 3) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa
center and scale. equal to TRUE in the call to prcomp to standardize the variables prior to the application of PCA:# log transform
log.ir <- log(iris[, 1:4])
ir.species <- iris[, 5]
# apply PCA - scale. = TRUE is highly
# advisable, but default is FALSE.
ir.pca <- prcomp(log.ir,
center = TRUE,
scale. = TRUE)
preProcess function of the caret package.prcomp function returns an object of class prcomp, which have some methods available. The print method returns the standard deviation of each of the four PCs, and their rotation (or loadings), which are the coefficients of the linear combinations of the continuous variables.# print method
print(ir.pca)
Standard deviations:
[1] 1.7124583 0.9523797 0.3647029 0.1656840
Rotation:
PC1 PC2 PC3 PC4
Sepal.Length 0.5038236 -0.45499872 0.7088547 0.19147575
Sepal.Width -0.3023682 -0.88914419 -0.3311628 -0.09125405
Petal.Length 0.5767881 -0.03378802 -0.2192793 -0.78618732
Petal.Width 0.5674952 -0.03545628 -0.5829003 0.58044745
plot method returns a plot of the variances (y-axis) associated with the PCs (x-axis). The Figure below is useful to decide how many PCs to retain for further analysis. In this simple case with only 4 PCs this is not a hard task and we can see that the first two PCs explain most of the variability in the data.# plot method plot(ir.pca, type = "l")

summary method describe the importance of the PCs. The first row describe again the standard deviation associated with each PC. The second row shows the proportion of the variance in the data explained by each component while the third row describe the cumulative proportion of explained variance. We can see there that the first two PCs accounts for more than # summary method
summary(ir.pca)
Importance of components:
PC1 PC2 PC3 PC4
Standard deviation 1.7125 0.9524 0.36470 0.16568
Proportion of Variance 0.7331 0.2268 0.03325 0.00686
Cumulative Proportion 0.7331 0.9599 0.99314 1.00000
predict function if we observe new data and want to predict their PCs values. Just for illustration pretend the last two rows of the iris data has just arrived and we want to see what is their PCs values:# Predict PCs
predict(ir.pca,
newdata=tail(log.ir, 2))
PC1 PC2 PC3 PC4
149 1.0809930 -1.01155751 -0.7082289 -0.06811063
150 0.9712116 -0.06158655 -0.5008674 -0.12411524
ggbiplot of the ggbiplot package available on github.
library(devtools)
install_github("ggbiplot", "vqv")
library(ggbiplot)
g <- ggbiplot(ir.pca, obs.scale = 1, var.scale = 1,
groups = ir.species, ellipse = TRUE,
circle = TRUE)
g <- g + scale_color_discrete(name = '')
g <- g + theme(legend.direction = 'horizontal',
legend.position = 'top')
print(g)
choices of the function. It colors each point according to the flowers’ species and draws a Normal contour line with ellipse.probprobability (default to ggbiplot can be obtained by the usual ?ggbiplot. I think you will agree that the plot produced by ggbiplot is much better than the one produced by biplot(ir.pca)(Figure below).

preProcess function of the caret package.require(caret)
trans = preProcess(iris[,1:4],
method=c("BoxCox", "center",
"scale", "pca"))
PC = predict(trans, iris[,1:4])
thresh.# Retained PCs
head(PC, 3)
PC1 PC2
1 -2.303540 -0.4748260
2 -2.151310 0.6482903
3 -2.461341 0.3463921
# Loadings
trans$rotation
PC1 PC2
Sepal.Length 0.5202351 -0.38632246
Sepal.Width -0.2720448 -0.92031253
Petal.Length 0.5775402 -0.04885509
Petal.Width 0.5672693 -0.03732262
preProcess function.[1] Venables, W. N., Brian D. R. Modern applied statistics with S-PLUS. Springer-verlag. (Section 11.1)
[2] Box, G. and Cox, D. (1964). An analysis of transformations. Journal of the Royal Statistical Society. Series B (Methodological) 211-252
R_training_2016_1202_第三次上課
# 第一章
# 描述性統計方法
#################################################
## 上課講義: biostat.tmu.edu.tw/R/20161202/#1
## R圖形介面 install.packages("Rcmdr"), 只能用64bit 來執行!
## 讀取資料檔 ##
setwd("D:/R_work/")
babies = read.csv("babies.csv")
babies$parity = as.factor(babies$parity)
babies$smoke = as.factor(babies$smoke)
## 統計表 ##
t_smoke = table(babies$smoke, useNA="ifany") # 次數 分配表
prop.table(t_smoke) # 相對次數
## 集中量數 ##
mean(babies$bwt) # 平均數
median(babies$gestation, na.rm=TRUE) # 中位數
t_age = table(babies$age)
names(t_age[t_age %in% max(t_age)]) # 眾數
## 離勢量數 ##
var(babies$height, na.rm=TRUE) # 變異數
var(babies[-c(3,7)], use="complete.obs") #一起比較許多的 行
sd(babies$weight, na.rm=TRUE) # 標準差
sd(babies$bwt, na.rm=TRUE) / mean(babies$bwt, na.rm=TRUE) # 變異係數, 用來做比較時用,較不受資料本身影響
range(babies$gestation, na.rm=TRUE) # 全距
min(babies$gestation, na.rm=TRUE) # 最小值
max(babies$gestation, na.rm=TRUE) # 最大值
IQR(babies$age, na.rm=TRUE) # 內四分位距, 就是Q3-Q1, Q2 就是median
quantile(babies$age, na.rm=TRUE) # 分位數
#################################################
# 第二章
# 基本繪圖功能
#################################################
## 高階繪圖函數 ##
plot(babies$bwt)
plot(babies[c("age", "height", "weight")]) ## 數值資料就是 scatter plote
plot(as.factor(babies$smoke)) ## factor 就變柱狀圖
plot(as.factor(babies$smoke), babies$bwt) ## 有數值, 有類別 就盒?圖
plot(iris[,1], type="l") # p, l, b, c, o, h, s, S, n
hist(babies$bwt, nclass=10, col="lightblue") # 直方圖, !適合用連續變數資料
barplot(table(babies$smoke), col=2:3) # 長條圖, 適合離散資料..要先做table!!
counts = table(babies$smoke, babies$parity)
barplot(counts, beside=TRUE, xlab="parity", legend=rownames(counts))
boxplot(iris[1:4]) # 盒鬚圖
boxplot(Sepal.Length ~ Species, data=iris, col=2:4, horizontal=TRUE) # ~ formula, !!
pie(table(iris$Species)) # 圓餅圖
library(plotrix)
pie3D(table(iris$Species), theta=1, explode=0.1)
## 低階繪圖函數 ##
hist(iris[,2])
x = c(2.5, 3, 3.5)
y = c(18, 7, 12)
label = c("A", "B", "C")
points(x, y, pch=1:3)
lines(x, y, col=4)
text(x, y+2, labels=label)
legend(4, 35, legend=label, pch=1:3, lty=1, col=4)
#################################################
# 第三章
# 相關係數
#################################################
## 相關係數 ##
use = "pairwise.complete.obs"
cor(babies[1:2], use=use, method="pearson") # 皮爾生相關係數, 非常容易受extreme 影響
cor(babies$bwt, babies$gestation, use=use)
cor(babies[1:2], use=use, method="spearman") # 斯皮爾曼等級相關係數
cor(babies$bwt, babies$gestation, use=use, method="spearman")
#################################################
# 第四章
# 迴歸模式
#################################################
## 簡單線性迴歸分析 ##
fit1 = lm(bwt ~ gestation, data=babies)
summary(fit1)
plot(babies$gestation, babies$bwt)
abline(fit1$coefficients, col=2)
## 多元線性迴歸分析 ##
fit2 = lm(bwt ~ ., data=na.exclude(babies)) # 為了後續使用 step 函數,先行排除遺失值資料
summary(fit2)
s_fit2 = step(fit2, direction="backward") #另一種方法幫你建議那些變數不適合!不建議用"forward"
summary(s_fit2)
===========================================
########################################################
## R 軟體系列課程 - R 在統計方法上的應用
## 課堂練習題參考答案
## 2016/12/02
########################################################
######################
## 描述性統計方法 ##
######################
## 繪製babies資料中parity變數的次數分配和相對次數分配表 ##
t_parity = table(babies$parity)
prop.table(t_parity)
## 以smoke為分組變數,計算babies資料中height, weight兩變數的內四分位距(IQR) ##
sapply(babies[c("height","weight")], tapply, babies$smoke, IQR, na.rm=TRUE) #sapply 就是對某幾個變數, 做tapply... 後面試tapply的變數..
tapply(babies$height, babies$smoke, IQR, na.rm=TRUE) #先想一下, 單純的情形, tapply做的事情就" 依據抹一個變數, 對另一個變數, 做function...
####################
## 基本繪圖功能 ##
####################
## 試繪製出以下圖形 ##
n = nrow(iris)
plot(1:n, iris$Sepal.Length, type="o", ylim=c(0,max(iris$Sepal.Length))) # 先將 y 軸範圍空出來
points(1:n, iris$Sepal.Width, type="p", col=2)
lines(1:n, iris$Petal.Length, type="b", col=3)
legend(100, 1.5, legend=c("Sepal.Length","Sepal.Width","Petal.Length"), pch=1, col=1:3)
################
## 相關係數 ##
################
## 分別使用皮爾生和斯皮爾曼方法計算babies資料中gestation, height, weight變數的兩兩相關係數,並解釋其意義 ##
cor(babies[c("gestation", "height", "weight")], use="pairwise.complete.obs") # 可試試使用其他 use 值的輸出有何不同
cor(babies[c("gestation", "height", "weight")], use="pairwise.complete.obs", method="spearman")
################
## 迴歸模式 ##
################
## 以babies資料建立一個線性迴歸模式,其中bwt為依變數、其餘變數為自變數,並加入gestation與age的交互作用項。嘗試解釋模型係數的意義 ##
fit = lm(bwt ~ . + gestation:age, data=babies)
summary(fit)
2016年11月28日 星期一
超實用懶人包!從開場到結尾,「英文簡報」說這幾句話就對了
2.To go back to the idea of… 現在再回到…的構想上
2.This is our fundamental problem. 這是我們最根本的問題
3.This is the main point I want to make today: … 這是我今天想要提出的主要重點…
4.If you take nothing else from this speech with you, take this:…如果這場演說讓你一無所獲的話,那起碼還可以得到這個:…
5.Our focus must be… 我們的焦點必須放在…
As written, this means, I think, that no matter how small the importance of voting is, no words could possibly make it seem any smaller. The writer should have used “overstated” here, meaning that all the emphatic expressions imaginable about the importance of voting would not be going too far, given how important voting is. Or am I wrong?
##" I cannot overstate the important of voting to a democratic society"##
Tip4: Could care less/ couldn't care less
2016年11月27日 星期日
R_2016_1118_第一次上課
# 第一章
# 基本運算規則
#################################################
## 上課講義
#http://biostat.tmu.edu.tw/R/20161118/#1
# download NPP
# download "NppToR"
## 簡單的數字與字串運算
1+2
3-4
5*6
7/8
9^0 # 等同於9**0
1+2*(3/4)^5 # 先乘除後加減,有括號先運算
sqrt(2)
abs(-1)
## 基本向量運算
x = c(1, 2, 3, 4, 5) # 等同於1:5
y = x + 1
x*y
length(x) # 向量長度
sum(y) # 加總
prod(x) # 累乘
mean(y) # 平均
z = c(x, y)
## 向量及矩陣的指標用法
x[1]
y[c(2, 4)]
z[4:6] # 等同於z[c(4, 5, 6)]
x >= 3
y[x >= 3] #用logic value to select
x[x <= 2 | y == 5] # 且(&, &&),或(|, ||), 比較 == 二個等號
length(x[x < 4])
sum(y[y != 6]) # 不等號!= , !否定的意思
x[-1]
y[-(2:4)]
X = rbind(x, y) # row bind
Y = cbind(x, y) # column bind
X[1, 5]
X[, 2]
Y[2 ,]
X[, c(1, 3)]
Y[2:4, -1]
Y[-1, -2]
## 多種指標用法
iris ## iris dataset, this is a data.frame for practice in R
iris[, 5]
niris[, "Species"]
iris$Species
iris[["Species"]]
iris["Species"] # 等同於iris[5]
names(iris)
names(iris) = c("A","B","C","D","E")
iris$A
iris[18, c("B","D")]
iris[iris$E == "setosa", 1:4]
#################################################
# 第二章
# 變數型態
#################################################
## R軟體資料屬性: 邏輯真假值(logical,T,F), 整數(integer),
## 雙倍精確度數字(double, real, numeric),
## 複數(complex), 文字字串(character, string), 二進位資料(raw)
1; 20.0; 3e2 # 數值
class(1) #判斷資料型態
"stat" # 文字
class("stat")
TRUE; T; FALSE; F # 邏輯真假值 一定要全部大寫 在R裏是保留值
class(T)
## R軟體變數種類: 向量(vector), 矩陣(matrix), 陣列(array),
## 因子(factor), 資料框架(data-frame), 串列(list), 時間數列(ts)
## 向量(vector) ##
x = c(1, 3, 5, 7, 9) # 建立向量,或聯結不同的向量
is.vector(x) # 查詢x是否為向量變數
y = c(2, "stat", T) # 元素屬性需相同 *** 資料與變數, 不同
x[1]; y[-2] # 向量指標 #指標系統
x[c(1, 3, 5)] = c(2, 4, 6)
c(x, y[1])
length(x) # 算出元素個數
names(x) # 查詢或建立向量的元素名稱
names(x) = c("a", "b", "c", "d", "e")
x[c(3, 5)]; x[c("c", "e")] #指標系統內的使用也是向量# R是建立在向量上
## 陣列(array), 矩陣(matrix) ##
X = array(1:6, c(3, 2)) # matrix(1:6, 3, 2) # 建立陣列變數
Y = array(1:12, c(2, 3, 2))
is.array(X); is.matrix(X) # 查詢X是否為陣列及矩陣變數
is.array(Y); is.matrix(Y) # 查詢Y是否為陣列及矩陣變數
rbind(x, x); cbind(x, x) # 使用rbind及cbind來建立array變數
nrow(X) # 查詢陣列的列數
ncol(X) # 查詢陣列的行數
dim(Y) # 查詢Y陣列的維度
rownames(X) = c("R1", "R2", "R3")
colnames(X) = c("C1", "C2")
## 矩陣(Matrix) ##
X = matrix(1:6, 3, 2)
Y = t(X) # 轉置
Z = X %*% Y # 矩陣相乘
diag(Z) # 對角線函數
det(Z) # 行列式
A = matrix(1:4, 2, 2)
b = c(2,2)
solve(A) # 反矩陣
solve(A, b) # 線性聯立方程式
eigen(Z) # 特徵值與特徵向量
## 因子(Factor) ##
x = c(1, 1, 1, 2, 2, 2)
y = factor(x) # 等同於 as.factor(x)
y - 1
levels(y) # 查詢或設定分類資料
levels(y) = c("一", "二")
nlevels(y) # 查詢分類數目
## 串列(List) ## 用來儲存不同資料型態
l = list(L1 = x, L2 = y, L3 = Z) #同時命名,建立LIST#
names(l)
l$L1 # 等同於 l[[1]] 或 l[["L1"]]
l[1]
l[[1]]
class(l[1]);class(l[[1]]) ##比較串列的指標, 出來的資料型態不同##
l[2] # 等同於 l["L2"]
l$L3[1, 2]
l$L4 = 1:5
c(l, list(L5 = 1:10))
## 資料框架(Data-Frame) ## 比較整齊的LIST
## 它其時是一種LIST, LIST 的特例## 資料型態不同, 但同一行要一樣的資料型態
D = as.data.frame(Z) # 將變數類型轉為data-frame, 像醫院資料, 有身份, 名字,數值..
D[, 4] = c(T, F, T)
names(D) = c("D1", "D2", "D3", "D4")
===========================================
ge########################################################
## R 軟體系列課程 - R 軟體入門(一)
## 課堂練習題參考答案
## 2016/11/18
########################################################
####################
## 基本操作環境 ##
####################
## 將工作目錄設定為"D:\R_work\"
setwd("D:/R_work/") # 注意斜線方向
## 嘗試下載並安裝"rgl"套件
install.packages("rgl")
library(rgl) # 載入套件
## 利用 demo 功能檢視 rgl 套件中的函數範例
demo(rgl, package="rgl")
## 利用 help 功能查看 rgl 套件中的函數說明
help(surface3d) # 等同於 ?surface3d
## 嘗試執行 rgl 套件中的函數範例
example(plot3d)
####################
## 基本運算規則 ##
####################
## 生成一組2, 4, 6, 8, 10的向量 ##
c(2, 4, 6, 8, 10)
1:5 * 2 # 亦可
seq(2, 10, by=2) # 亦可
## 取出 iris 資料集中鳶尾花品種為 setosa 的資料
data(iris)
iris_setosa = iris[iris$Species == "setosa",]
iris_setosa = iris[iris["Species"] == "setosa",] # 亦可
iris_setosa = iris[iris[,5] == "setosa",] # 亦可
## 將上述資料依 Sepal.Length 變數進行排序
iris_setosa[order(iris_setosa$Sepal.Length),]
######################
## R 的變數與資料 ##
######################
## 已知 x = 1:5 以及 y = c("一", "二", "三", "四", "五")
## 將 x 的元素名稱改為甲、乙、丙、丁、戊
x = 1:5
y = c("一", "二", "三", "四", "五")
names(x) = c("甲", "乙", "丙", "丁", "戊")
## 查詢 rbind(x, y) 的維度
rxy = rbind(x, y)
dim(rxy)
## 將 y 變數的型態轉變為因子(factor)變數
y = as.factor(y)
## 將 cbind(x, y) 的型態轉變為資料框架(data-frame)
cxy = cbind(x, y)
cxy = as.data.frame(cxy)
## 建立一個 2*3*4 的三維陣列,其元素為 1:24
array(1:24, dim=c(2,3,4))
## 查詢 rbind(x, y) 的型態是否為陣列(array)
is.array(rxy)
## 將 x, y 合併為一個串列(list),並查詢其第一個元素
lxy = list(X=x, Y=y)
lxy$X; lxy[["X"]]; lxy[[1]] # 試試 lxy["X"] 或 lxy[1] 的結果,變數型態有何不同?
R_2016_TMU_第二次上課
# 第一章
# 資料的輸入與輸出
#################################################
## http://biostat.tmu.edu.tw/R/20161125/#2 ##
setwd("D:/R_work/") # 設定工作目錄 # 斜線是由右到左!!
#用ls()來看
## 文字檔輸入 ##
babies = read.table("babies.txt", header=T) ## =是指派,大寫T是邏輯值!
babies = na.exclude(babies) # 刪除具有遺失值的資料
Iris = read.table("iris_dataset.txt", header=F, sep=",")
IRIS = read.csv("iris.csv", header=F)#.csv的格式也依樣是用逗號分隔
babies1 = read.fwf("babies.txt", header=T) ## =是指派,大寫T是邏輯值!
## 文字檔輸出 ##
cat(babies$smoke, file="smoke1.txt", sep="")
write(babies$smoke, file="smoke2.txt", sep=",") # ncolumns 5, 每五個換行!
weight = babies[babies$weight < 100,]
height = babies[babies$height > 70,]
write.table(weight, file="weight.txt", sep=",", row.names=F)
write.csv(height, file="height.csv", row.names=F)
## 存取其他軟體的資料檔 ##
library(gdata)
babies_xls = read.xls("babies.xls", sheet=1) # 讀取xls檔, 需要perl的路徑!
library(xlsx) #用R 32較方便,用64也其他問題!
babies_xlsx = read.xlsx("babies.xlsx", sheetIndex=2) # 讀取xlsx檔,且指定work sheet number!
write.xlsx(iris, "iris.xlsx", sheetName="iris") # 匯出xlsx檔, 可以發現速率很慢!
library(sas7bdat)
babies_sas = read.sas7bdat("babies.sas7bdat") # 讀取sas資料檔
library(foreign)
babies_spss = read.spss("babies.sav", to.data.frame=T) # 讀取spss資料檔
## 存取R物件 ##
save(weight, height, file="babies.RData")#要存幾個資料都可以 用逗號分隔!
save.image() # 儲存工作空間
load("babies.RData") #可以用 ls()來確定 已經把資料存入!
#################################################
# 第二章
# 程式流程控制
#################################################
## 邏輯判斷式 ##
## 運算子優先性:
## 括弧 => 乘除 => 加減 => 比較 => 邏輯 => 指派
x = 1
x == 3
x != 1 + 2
!(x <= 3)
x %in% 1:5 #X有在 1-5裡面嗎?!!
x < 0 || x > 5 # || 表示 or !
(is.matrix(x) || x >= 0) & (1 < 2)
## 條件執行 ##
x = 1
if (x == 3) y = 10 else y = 20
if (x >= 5) { #()小瓜號, {}大括號!
y = 15
} else {
y=0
} # 建議寫法
if (x < 0) {
y = x - 1
} else if (x > 0) { #else if, 如果不是,我在判斷x, 如果是的話...!
y = x + 1
} else {
y = x
}
## for迴圈 ## 適合我已經知道要跑幾次!!!
y = vector() # 宣告變數, 因為Y有用到 指標 []!
for (x in 1:5) { #for 迴圈就是先要說明x的範圍!!!
y[x] = sqrt(x)
}
z = 1 #起始值!
for (i in c(2,4,6,8,10)) {
z = z * i
} # 2*4*6*8*10
## while迴圈 ## 還不清楚要跑幾次!
x = 1; y = vector()
while (x <= 5) { #while 迴圈就是先有一個判斷式!
y[x] = sqrt(x)
x = x + 1
}
z = 1; i = 2
while (i <= 10) {
z = z * i
i = i + 2
}
## repeat迴圈 ##
x = 1; y = vector()
repeat {
y[x] = sqrt(x)
x = x + 1
if (x > 5) break # 跳離迴圈
}
z = 1; i = 1
repeat {
i = i + 1
if (i > 10) {break} else if (i %% 2 != 0) {next} ## "%%" i 除以 2的餘數 不等於0!!
z = z * i
} # next: 跳過一次迴圈
#################################################
# 第三章
# 自訂函數
#################################################
## R的自訂函數 ##
# 函數的定義語法:
# 自訂function名稱 = function(參數1, 參數2, ...)
# {
# 完整運算式...
# }
func1 = function(a, b)
{
x = 1+2*3/4 ##這個x只有存在此函數內, 部會影響到外面的x!!
y <<- a + b ## <<- 指派 把這個y指派到外部的變數了!!!
return(y) # 預設傳回最後一個運算值,或使用return函數
}
func1(7, 6)
func1(b=3, a=2)
## 參數的預設值 ##
func2 = function(x=0)
{
sum(x)/length(x)
}
func2(1:5)
func2() # 參數x的預設值為0
## ...參數 ##
func3 = function(x, ...) ## ... 就把此部分的參數 轉移到函數內
{
y = mean(x, ...) + 1
return(y)
}
x = c(2,4,6,NA,10)
func3(x, trim=0.1)
func3(x, trim=0, na.rm=TRUE)
## 二元運算子 ##
"%p%" = function(a, b) ## 一定要有雙引號百分比!!
{
factorial(a)/factorial(a-b)
}
5 %p% 2
#################################################
# 第四章
# 程式撰寫技巧
#################################################
## apply函數 ##
apply(iris[-5], 2, max)
func = function(x) x[x < mean(x)]
apply(iris[,1:4], 2, func)
## tapply函數 ##
tapply(iris[,1], iris[,5], min)
index2 = rep(1:2, length=150)
tapply(iris[,2], list(iris[,5],index2), median)
## sapply, lapply函數 ##
sapply(iris, length) #對每個元素, 優先回傳vector!
lapply(iris, length) #對每個元素, 回傳list!
sapply(iris[-5], function(x) { which(x > mean(x)) })
## 各方法計算時間比較 ##
x = rnorm(50000) # 以標準常態分配生成隨機樣本
y1 = y2 = y3 = y4 = vector()
t0 = proc.time() # 起始時間
for (i in 1:length(x)) {
if (x[i] <= 0) y1[i] = -1 else y1[i] = 1
}
t1 = proc.time() - t0 # y1的計算時間
y2 = ifelse(x <= 0, -1, 1)
t2 = proc.time() - t0 - t1 # y2的計算時間
y3[x <= 0] = -1; y3[x > 0] = 1
t3 = proc.time() - t0 - t1 - t2 # y3的計算時間
y4 = sapply(x, function(x) {if (x <= 0) -1 else 1})
t4 = proc.time() - t0 - t1 - t2 - t3 # y4的計算時間
## Which is better? ## #寫程式比的是 執行效率 and 開發成本(可讀性, 註解, 排版, debug)!
aa=read.table("babies.txt",header=TRUE)
bb=na.exclude(aa$smoke);cc=vector()
for(i in 1:length(bb)){if(bb[i]==1) cc[i]="是" else cc[i]="否"}
## 讀入babies資料檔、宣告smoke及new_var變數 ##
babies = read.table("babies.txt", header=TRUE)
smoke = na.exclude(babies$smoke)
new_var = vector()
## 使用迴圈將smoke變數重新編碼並存入new_var變數 ##
for (i in 1:length(smoke)) {
if (smoke[i] == 1) {
new_var[i] = "是"
} else {
new_var[i] = "否"
}
}
2007年4月5日 星期四
我的學思歷程
時 間:2006-10-03
地 點:臺大第二活動中心 蘇格拉底廳
主講人:司法院大法官 賴英照
主持人:包宗和 副校長
壹、前言
今 天我們聚會的地方叫蘇格拉底廳。蘇格拉底(470?~399BC)和他的門生柏拉圖(427~347BC)、亞里士多德(384~322BC)並稱希臘三 大哲人;他們的思想,共同奠定了西方文化的哲學基礎。他和孔子一樣都是述而不作(孔子死後9年蘇格拉底才出生),他的思想主要靠兩個大弟子柏拉圖和蘇諾風 (Xenophon)等著作流傳下來。有關蘇格拉底的笑話很多。相傳蘇太太嗓門很大,又凶悍,罵起人來像打雷一樣。有一天,蘇太太又對丈夫破口大罵,罵完 之後餘怒未消,順手把手裡一桶水往丈夫身上潑去。有弟子為老師抱不平,蘇格拉底卻說:這很正常,打雷之後,總會有傾盆大雨。
蘇格拉底還是勸年輕人一定要結婚。他說,如果討到好老婆,你會快樂幸福一生;如果娶到跟我一樣的,你就會成為哲學家。
人生一個困難的問題,就是許多影響一生的大事,都必須在10幾或20幾歲做決定。結婚如此;選科系、選學校也是如此。我最近看到乙份國科會委託學者的調查 報告,受訪對象涵蓋161所大學院校,5萬多名去年的大一新生。結果發現,有49%的大一新生不確定是否選對科系,超過33%的新生清楚瞭解,現在讀的科 系,不是自己當初想唸的,有24%的想轉系,27%想重考或轉校。許多大學新生,正在經歷徬徨少年的時光。
少年人有這種感覺,我並不驚訝。你們讀過胡適的「四十自述」,就知道胡適也徬徨過。胡適(1891-1962)的「四十自述」,有一段述說他出國留學的緣 由。1909年他任教的中國新公學因為鬧學潮解散了,他在上海每天和一群浪漫的朋友打牌、看戲、吃酒。有一天晚上,大雨傾盆,胡適喝得酩酊大醉,在馬路上 手拿一隻皮鞋,敲著路邊的牆壁。巡捕把燈照射過來,胡適破口大罵,還用皮鞋打巡捕。結果胡適被帶回巡捕房,在地板上睡了一夜。次日一早醒來,完全不知道昨 天晚上發生什麼事。等弄清楚之後,胡適羞愧無地,懊惱萬分。那一年(1910年)正好有庚子賠款的留美公費留考,胡適痛下決心,五月離上海往北京閉門苦 讀,準備考試。兩個月後,胡適如願錄取(在70名中,他排名第55名),同年九月,順利進入康乃爾大學。對胡適來說,這是生命中一個重要的轉折。
如果你現在對未來的生涯,成竹在胸,已經有很好的規畫,我要恭喜你;但如果感到徬徨,也是蠻正常的。我相信絕大部分的年輕人都走過那一段徬徨少年路。我也 徬徨過。後來我唸法律,從事財經和法律的實務工作,其實都不是事先的規畫。人生是很難規畫的。
貳、徬徨曲折路
一、吳老師的家庭訪問
我 的成長環境,和現在的情況有很大的不同。拿最基本的經濟條件來說,去年(2005年)我們的國民平均所得是13,646美元,50年前(民國45年)只有 134美元。我們班上四、五十個同學,只有三、五個小孩有鞋子穿。冬雨連綿的清晨,大夥踩著冰冷的雨水上學(蘇格拉底一年到頭也習慣打赤腳,但不是因為買 不起鞋子);炎炎夏日的正午,幾十雙赤腳在太陽曬得冒泡的柏油路上,蹦蹦跳跳的「燙」回家。多半的同學跟我一樣,一直到畢業前夕才買到第一雙球鞋;那還是 父、母親費了好大力量才湊足,讓小孩能夠穿鞋子參加畢業典禮。
經濟條件差,但學習的環境很溫暖。為了考初中,晚上留在學校補習,老師自己買蠟紙刻鋼版,油印給同學,卻從不收補習費。如果收費,許多同學大概沒有機會參 加補習,也不能上中學。事實上,我小學畢業後並沒想要升學。那時我二哥已經進了宜蘭中學,每到開學註冊,父母親總要為二哥的學費到處張羅,十分辛苦。有一 天,級任老師吳燦輝先生突然來做家庭訪問,對我父母說:「你這孩子非常聰明又會念書,沒有讓他升學,實在非常可惜」。基於尊師重道,父母親答應了吳老師, 我也就這樣進了省立宜蘭農校。如果吳老師沒有來,或者那天爸媽外出工作,不在家,我大概有可能變成「賴永慶」。
農校是當時宜蘭地區最好的中學之一,現在已經升格為宜蘭大學。我不是對農科有特別的興趣,只因為學費便宜,又是職業學校,畢業後比較容易找事。那時候課內 的書沒有讀得太起勁,但父親床頭的章回小說,卻一本本「偷」出來看;圖書館借得到的傳記,也讀得津津有味。有一次偶然讀到有關王雲五先生(1888- 1979)的生平事蹟,對他油然而生崇拜之心。他十一歲才進私塾,沒有正規的學歷,但是他的學問是大家所敬佩的,不但寫很多書,還編了四角號碼字典。二十 七歲那年,胡適之先生聘他做商務印書館編譯室主任。後來進一步主持商務印書館,對出版業有很大的貢獻。王先生也擔任過財政部長、經濟部長、考試院副院長、 行政院副院長等要職。我當時天真的想,沒有好的學歷,將來也可能是「賴雲五」。於是農校畢業,沒有參加大專聯考就去當兵了。
二、成功嶺的太陽在 新竹當二等兵,受完8週新兵訓練,部隊裡要挑選十個人繼續受八週的士官隊訓練,然後做教育班長。我知道士官隊的訓練比新兵訓練更辛苦幾倍,當教育班長當然 也是苦差事,因此有意避開。當上級長官來挑選的時候,我故意站得彎腰駝背的,但是連長大力推薦,說我是教育班長的最佳人選,因此我還是入選了。萬分無奈的 上成功嶺受訓,心中十分懊惱。
但現在回顧起來,在成功嶺當班長,卻是我人生的一個轉折。眼看著退伍的日子一天天的逼近,每天都在為退伍後的出路發愁。當時那群大專兵跟我很投緣,看到這 種情形,就鼓勵我考大學,我想反正也沒有別的路走,就決定試試看。他們把書借給我,我每天早上四點鐘起床,帶著書到操場邊,就著微弱的路燈,一讀就是兩個 小時,直到清晨六點吹起床號才趕回營房。白天跟部隊出去打野外,野戰服裡面也藏一本教科書。大家都知道,成功嶺是台灣太陽最大的地方,炎炎夏日,貼著內衣 的書本早就濕透了,中間一有空閒,就悄悄把書拿出來,一邊讀,一邊曬書。
當時連長是拉伕從軍,一路辛苦升上來的軍官,兇得出名;知道我決定要考大學,常常冷嘲熱諷,但是我並不在意。有一次,打野外回來,留守營房的預官排長交給 我一堆書,要我趕快收起來。我一看這些書本來就是我的,放在內務櫃裡,怎麼會到了排長手上?排長說:「你不曉得,連長早上檢查內務,把你放在內務櫃的書, 全拿出來往床下丟。我每天看你用功讀書,特別爬到床底下,幫你把書撿出來」。
我蠻感動的,覺得軍中還是有溫暖。後來部隊舉行全師戰技測驗,每一連抽一個班參加,我的班正好被抽中;測驗結果,我的班名列前茅,連長從此對我的態度大幅 改善;退伍之前,他特別送我一筆300元的獎金。錢不多,但善意十足。
三、文學,還是法律?退 伍那年,我22歲,自覺已是大人了,心想如果唸大學還跟父母要錢,就太沒出息了,於是決定考夜間部,可以半工半讀,自食其力。考什麼類組呢?我沒有太多的 偏好,文學和法律都行。報名那一天,我一早從宜蘭的礁溪站坐三個小時火車到台北,當時在台北一個親戚也沒有,必須當天就完成報名手續,趕回礁溪,否則晚上 睡在哪裡都不知道。出了台北車站,坐15路公車到師大,先進師大看看,那是報考丁組(法、商科系)的地方。那裡報名的人很多,長龍不斷加長,心想如果跟著 排隊,今天勢必無法完成報名。我趕忙轉往金華街淡江城區部,準備報考乙組(文科)。可是淡江的人龍更長,只好又趕緊折返師大排隊;還好5點鐘結束以前完成 報名。我後來以第一志願考取中興法律系(那時台大夜間部沒有參加聯招)。現在回想,如果那時候淡江的人潮少一點,我可能就進了師大英語系,走上文學的道路 了。
四、行住坐臥皆法律法 律不見得是我的最愛,但很珍惜進大學的學習機會。有一天,偶然讀到歷史學家房龍(Hendrik Willem van Loon,1882~1944)的「人類的故事」(The Story of Mankind ),他在序文裡頭的一段童年往事,對我有很大的啟發。他說十二、三歲的時候,有一天跟隨舅舅去鹿特丹的聖羅倫斯教堂,攀爬高聳的塔樓。管理員打開微微銹蝕 的鐵門讓他們進去,樓梯間漆黑幽暗,舅舅擦亮一根火柴引路上樓。辛辛苦苦不知爬過多少級樓梯,突然亮了起來,原來已到了塔樓中段,陽光從窗外透射進來,街 上的塵囂悠悠傳來,竟顯得格外悅耳。繼續往上爬,又是一片黑暗,樓梯更加陡峭﹔不知爬過多少樓梯,正在氣喘吁吁之際,又見窗外亮光。如此周而復始,最後兩 人到達塔樓的頂端,踏上平台,陽光普照,天地豁然開朗。小房龍俯瞰街景如積木玩具,極目遠眺四方,鹿特丹的大千世界盡收眼底。他看到了平日看不到的鹿特 丹,那種喜悅,讓他心靈顫動,觸發他一生學習與創作的動機。
那時剛唸法律,許多問題無法解答,心頭彷彿一片黑暗;每弄清楚一個法律問題,就像在心中開一扇窗子,看到外頭陽光普照的世界。那時候好像有一把火在心頭燃 燒;生活中,行住坐臥想的都是法律問題。坐公車的時候,想著乘客和公車之間是什麼法律關係?在學校自助餐廳吃飯,心裡會問:我和餐廳老闆之間是什麼法律關 係?報上許多財務糾紛,幫派火拼的消息,又猜想法官會怎麼判決?我不斷的看書尋找答案,不斷的在心裡開窗子。
因為白天在台北市政府測量隊工作,晚上趕到學校上課,最好的看書時間除了星期假日,就是寒暑假。因此我總是利用寒暑假,把下學期要讀的書買來,依照書的厚 薄以及難易的程度,排定功課表,每天照表念書。一本500頁的書,如果排定每天讀50頁,10天一定唸完,從不耽誤。開學之前,就把一個學期該唸的書統統 唸完。
五、台大的因緣法 律系畢業想唸研究所,每天就在圖書館用功。有一天下午,唸得有點悶了,走出圖書館到草坪上透透氣。一出圖書館,恰好一位同學走過,順便問我一句:「台大法 研所你報名了沒有?」我反問他:「開始報名了嗎?」,同學大聲說:「今天是報名的最後一天了,五點鐘截止!」我看看錶,下午四點。我趕緊掉頭回圖書館收拾 書本,衝到校門口坐計程車先回住處拿證件,然後直奔台大。
到達報名處,差十分五點。工作人員已收拾大半,報名表也都收走了,我在地上撿起一張報名表,是別的考生寫錯兩個字扔掉的,上面還留了半個球鞋印。我迅速填 妥報名表,但匆忙趕來,身上只有學生證,連成績單、照片都沒有。我跟報名處的先生商量,先讓我報名,再補資料,如果我證件無法補齊,即使錄取了也可以取消 我的資格;感謝那位先生的通融,讓我報名。考試那天,我坐在最後一個考場的最後一個位置;我就這樣進了台大法研所。(今天在座的陳院長保基和趙院長永茂, 是我研究所的好友,看到他們,讓我彷彿回到從前)
六、「財經輔系」和公費留考那 時候,財政部長是李國鼎先生,主任秘書是李模先生,他們看到財政部的同仁,如果是經濟系、財稅系畢業的,多半不懂法律;法律系畢業的,又往往不懂財經。他 們很希望同仁能夠二者兼備,讓財政工作的品質更為提昇。他們於是做了一個創舉,舉辦財稅法務人員特考,招考法律系畢業生,然後施予密集的財經課程訓練。那 一年我剛好大學畢業,報名應考,居然以第一名錄取。
財稅訓練所的所長是望重士林的張則堯先生,班主任是兼擅財經與法律的李模先生。一整年,沒有寒暑假,每天8小時,都是財經方面的課程。我每天騎著大哥給我 買的摩托車,在法研所(徐州路)和財訓所(金華街)之間跑來跑去;一年下來,除了完成研究所的課程,我等於另外讀了一個經濟或財稅的「輔系」。受完訓,分 發到台北市國稅局上班。
研究所第二年,教育部舉辦公費留考,有一個學門是「國際貿易法」,除了普通科目外,專業科目考「商事法」和「國際貿易理論與實務」。「商事法」是法律系的 本行,「國際貿易」正是我過去一年主修的科目,就興沖沖去報名。進得考場,發現法研所和商研所的學生各半,真是高手雲集,而且一個學門只錄取一名,心想大 概沒有希望。放榜那天,我從紹興南街男生第四宿舍走到教育部看榜,先從榜單的最後一行看起,一直找到最前面第三行,還是沒有自己的名字,心想落榜了,搖搖 頭轉身就走。回到宿舍,卻有同學跟我大聲道喜,說我考上了,我當然不相信,因為我剛看完榜單回來,還與他打賭,結果輸給他一瓶啤酒。原來千真萬確,我的名 字寫在榜單第一行,是公費留考第一名。現在回想起來,運氣真好,如果不是財訓所一年的「輔系」,第一名不會是我;如果不是我,以我家庭的經濟情況,沒有公 費大概就不可能出國。
七、手寫的申請表放 榜後,接下來便是申請學校。自己覺得程度不夠,沒有把哈佛大學列入考慮。但有同學極力慫恿我,說我研究所名列前茅,公費留考第一名,托福成績六百多分,為 什麼不去哈佛呢?我想想,反正也不要報名費,就順手寫一封信去要了申請表格。填寫其他學校的報名表格時,我送給打字行打字,一封信二十塊錢,處理得漂漂亮 亮的;但是填哈佛的申請表格時,我想反正沒希望,何必花這個錢?我就自己用手書寫,然後在申請截止最後一天寄出。沒想到一個多月後,哈佛通知我:「錄取 了」!
八、無心插柳回國後,受聘到中興大學任教。教書原是我的最愛,日子也過得很充實。但教了幾年,1984年夏天,當時的財政部關政司長發生意外過世了,部長陸潤康先生就找我來接這個職位。為什麼找我?我不清楚;回想起來,可能跟一件事有關。
剛才說到我讀研究所的時候,一邊在台北市國稅局上班,那時陸先生是國稅局局長。陸先生早年在美國拿到法律學位,寫過一本「美國聯邦憲法論」,知道我在台大 法律研究所唸書,也寄一本給我。我受寵若驚,花了兩個週末,從頭到尾讀過一遍,還做了兩件事情:第一,做一張勘誤表,把書上的錯字校正過來。第二,到美國 新聞處(現在叫美國文化中心),及台大、東吳等圖書館,找美國憲法的相關書籍來看,發現陸先生這本書寫得非常好,可惜有些聯邦最高法院新的判決沒有放在裡 面。於是,我就把那些資料影印下來,並且加上一些說明,某項判決與第幾章第幾節有關。寫完之後寄給陸局長。當時他並沒有回信。後來我考取公費,出國前向他 辭行時,他才提起此事。我想這件事可能跟他邀我到財政部工作有關。
要不要離開學校到政府工作?我很猶豫。在大學和研究所期間,我考取律師和司法官,我可以做律師,也可以當法官,但我都沒有去。教書很符合我的志趣,為什麼 要離開呢?幾經考慮,覺得財政部的工作可以讓我對財經法律的實務運作情形有更深入的瞭解,如果做一段時間,對教學也有幫助。因此我承諾做兩年,期滿就回學 校。豈知世事難料,陸部長只做了一年多就離開財政部。後來的幾位部長都不肯兌現這張支票,要我留下來。這一留,二十幾年就過去了。
九、臨淵羨魚,努力結網回 首來時路,其實是一連串的偶然。小學畢業那年,如果吳老師沒有來,或者來了正好父母外出,我不會上中學。當兵的時候,如果不是去成功嶺當班長,我不會考大 學。大學報名的時候,如果淡江的人潮少一些,我不會讀法律。如果圖書館門口沒有碰到那個同學,我不會進台大。收到陸部長的贈書,如果不是那麼雞婆寫了一封 信,我大概不會到財政部。……。
簡單的說,進中學乃至於唸大學,不是我原先的規畫;唸完學位,到政府工作,也不是我原先的規畫。在這麼多的偶然當中,從一個轉折到另一個轉折,也曾忍受多少的煩惱和徬徨。現在回想起來,這些煩惱都是多餘的。
從另一方面看,吳老師來了,如果我平常功課很爛,還是不能上中學。成功嶺上,大專兵無論如何善意,如果不是下定決心讀書,大概也考不上大學。隨緣之中,還 是要有決心和努力。古話說:「臨淵羨魚,不如退而結網」,魚游過來的時候,手上還是要有一張好的網才行。手上的網,得靠自己一針一線的織上去。
各位同學,與其讓時間在徬徨苦惱中流逝,不如把握機會學一些有用的東西。機會一定會來的。
參、專業與倫理
一、蘇格拉底問答法
所 謂退而結網,這個「網」有專業的訓練,也有倫理的修為。在哈佛前後五年讀財經法,學校的專業訓練,很倚重蘇格拉底問答法(Socratic Method)。各位同學一定知道,它是一種問答的方法,以師生之間的對話,探討人生許多重要的問題。通常由老師問一個問題,學生回答,老師又從學生的回 答中,找出矛盾,挑出新的問題,再由學生答;問題的前提,隨論辯的進行不斷修改,學生的回答也跟著假設前提的更易而改變。學生之間也用這種方法討論問題。 在這種反覆問難的過程中,師生共同驗證道理的真偽,及是非善惡的觀念,學生也藉此熟悉論辯的技巧。
法學院慣常採用的蘇氏教法,就是以法院案例做為討論對象,老師在上課前先指定若干案例要學生研讀。上課時,要學生報告案件的節略,包括事實、爭點及法院的 判決和它的理由等。學生的報告必須言簡意賅,條理井然。老師接著提出一系列的問題:法院為什麼這樣判?理由是否堅強?你同不同意?理由何在?在反覆問答 中,老師常把案件的事實加以變更,並要學生根據這些假設的情況提出分析意見。老師也會指出答案的矛盾,要學生進一步說明。老師可隨時要求任何學生回答問 題,其他同學也歡迎加入討論。藍德爾相信,這種反覆問答論辯的方式,對學生最為有用。
二、藍德爾院長為 什麼哈佛法學院會採用蘇氏教學法?容我簡單的回顧哈佛的歷史。大家都知道,哈佛是一所古老的學校。1636年10月28日,麻薩諸塞州的州議會 (General Court)決議撥出四百英鎊辦一所學校;翌年秋,創校籌備會成立,成員包括六位政府官員及六位英國劍橋大學(Cambridge University)的教職員。1638年夏天開始招生,開設文學和宗教方面的課程;第一學期學生只有12個人。當時有一位年輕的傳教士,經常和學校的 師生來往。1638年秋,傳教士才31歲,卻突然罹患重病,臨終遺言,把他全部的藏書四百冊,及一半的財產(估計大約值375~779英鎊之間),捐贈給 這一所剛成立的學校。這位傳教士就是約翰哈佛(John Harvard 1607~1638)。學校為了感念他的善意,就以哈佛為校名;而學校所在的小鎮,後來也以劍橋(Cambridge)為地名。
創校180年後,1817年6月12日,哈佛校務會議在長期籌備後,決定利用校友捐款,正式設立法學院(Law School)。然而,這所全美最古老的法學院創立之初,並沒有吸引多少學生前來就讀。當時的年輕人習慣在律師事務所學習法律。從1817年到1829年 的12年當中,只有25個畢業生。1829年之後,史多瑞(Joseph Story)接掌院務,情況頗有起色,但也只是曇花一現;史多瑞去世後,人亡政息,一切又恢復舊觀。當時法學院沒有設置院長,只有一兩位資深教授負責院 務。
這種情況,到1870年美國「法學評論」(American Law Review)刊出一篇專文之後,產生重大變化。專文的作者四年前剛從法學院畢業,他對學校課程的呆滯、教學的散漫、紀律的廢弛,以及圖書的匱乏,指證歷 歷。他並痛陳法學院制度鬆散,學生無須具備任何入學資格,在校期間也不必考試,只要待滿一年到一年半的時間,就可以拿到學位。他的結論率直而嚴厲:「哈佛 法學院的存在,是麻州一件不光彩的事」。
這篇文章的作者不是別人,正是後來出任聯邦最高法院大法官長達30年(1902~1932),在法學界聲望崇隆的何姆茲(Oliver Wendell Holmes, Jr., 1841~1935)。何氏的批評,引起哈佛當局極大的震撼。同年9月27日,哈佛大學校長艾略特(Charles W. Eliot)召開校務會議,決定為法學院設置院長,並延攬藍德爾(Christopher Columbus Langdell, 1826~1906)為第一任院長。
藍德爾是何姆茲的學長,1854年畢業於哈佛法學院,當時在紐約執行律師業務。他擔任院長25年(1870~1985),任內所做的改革,為美國法學教育 奠立基礎。他建立入學資格審查制度,新生必須通過考試,或者具備大學學位才能入學。由於入學考試主要考拉丁文或法文的翻譯,很少有學生能通過考試,因此沒 有大學學位的人,幾乎無法入學。1909年,正式廢止入學考試制度,申請者必須具有學士學位。此外,修業年限從1899年起延長為三年,在學期間必須修滿 一定的課程,並且通過嚴格的考試才能畢業。這些制度沿用至今,未曾改變。
藍德爾有關教學方法的改革,影響更為深遠。藍德爾主張,法律是一門科學(science),不是所謂「有系統、有條理的學問」,而是與化學、植物學一樣的自然科學。藍德爾這種「法律即科學」的觀念,其產生有幾種原因:
一、當時流行的律師事務所的訓練,側重實務,不免零散而龐雜;藍氏以科學方法,對法學做一系列的研究,可矯正律師事務所訓練的缺失,因而可吸收更多的學生前來就讀。
二、任命藍氏為法學院院長的艾略特校長是年僅36歲的化學家,精於自然科學的法則,提出「法學即是一門科學」的觀念,亦容易獲得校長的支持。
三、1870年代,工業革命方興未艾,自然科學無所不在,在這種氣氛中,人文學科的研究容易受到自然科學影響,法律自不例外。
藍德爾相信,法律存在於法院的判決之中。把以往的案例,用科學方法加以有系統地整理分析,可以歸納出具體的規範;這些規範,適用於特定的事實,就產生判 決。因此法院的實務案件,應該是研究法律的主要教材,教授必須編寫Casebook做為教科書,圖書館也要廣泛蒐集案例及相關資料。法律教育的重點,就在 於培養學生分析、歸納及應用的能力。藍德爾認為,蘇氏教學法最能達成目的;在這種訓練之下,法院判決也比較容易趨於一致。
藍氏的改革,初時頗受議論,但後來證明相當成功。1895年藍德爾因眼疾辭卸法學院院長時,一位傑出的校友白蘭德斯(Louis Brandeis,是第一位猶太裔的美國聯邦最高法院法官)寫道:藍氏已經成功地證明,法學院-而非律師事務所-才是訓練法律人才的最佳場所。事實上,蘇 氏教學法目前還是美國法學院普遍採用的教學法。
三、橫看成嶺側成峰蘇 氏教學法也有不足之處。就技術層面而言,它太花時間,討論一個案例經常要耗掉一兩個小時。在實質問題方面,許多人不認為法律就是科學。法律的適用當然離不 開三段邏輯的推演,但邏輯只是外殼,裡頭裝著濃厚的價值判斷,也就是法官從出生到成長,到執筆寫判決書之時,各種生活經驗累積而成的價值觀。如果單純用歸 納、分析的邏輯方法研讀法院判決,往往只看到皮相,而不是精髓。
外界可能很好奇,同樣的法律,同樣的事實,為何經常有分歧的見解?美國聯邦最高法院有九位大法官,許多案子都是五票對四票的情況,轟動一時的布希對高爾的 選舉官司,也是五票對四票。面對這種現象,有人認為當然,有人卻無法理解。
在西洋法制史上,十八世紀末葉的普魯士王朝,曾經進行一項實驗。1794年菲特烈大帝頒布有名的普魯士民法典(Allgemeines Preussisches Landrecht),條文超過一萬六千條,比拿破崙法典的二千二百八十一條多了七倍。這部法典鉅細靡遺的規範可能發生的各種情況,法官只能機械的適用法 條,嚴禁解釋法律,否則法官也要接受嚴厲的處罰。
但是,一萬六千多條的法律,顯然也無法預知法典頒行後,大千世界的森羅萬象。菲特烈大帝的實驗,很快就證明失敗了。法官終究要處理不斷發生的新案例,解釋法律必然成為司法程序的一環,判決分歧的現象也就很難避免。
何姆茲早在1880年就指出,「法律的生命,不是邏輯,而是經驗」(The? life of the law has not been logic; it has been experience.)。所謂經驗,就是一般所說的價值判斷。同樣的法律,同樣的事實,用三段邏輯加以推演,常常可以得到兩個以上的結論;而且這兩個結 論還相互衝突,南轅北轍。但判決主文只能選擇其一,這種選擇的過程,已經超越邏輯推演的層次,而進入價值判斷的範圍。
由於生活經驗不同,法官對事情的看法也會不同。蘇東坡說的好,「橫看成嶺側成峰,遠近高低各不同」;法院的判決,常常是以邏輯的外衣,反映法官的人生經 驗,表現對事物的價值觀。邏輯並非主導判決的因素,自然也不是法律生命之所繫。事實上,美國法官都受過蘇式教學法的訓練,但美國法院判決分歧的現象,仍然 普遍存在。
在這種情況下,法律的倫理成為非常重要的問題。法學院的課程,如果只是法律技巧的訓練,學生會不會反而忽略了法律的基本目的,也就是公平正義的追求?做了 律師,是不是誰付最多錢就聽誰的?做了法官,會不會以邏輯的外衣,包裝不正當的目的?這種倫理問題,不僅僅是法律人的問題,也是人生的基本問題。一生當 中,是不是「拔一毛而利天下不為也」?還是要兼善天下,甚至於捨身為人,鞠躬盡瘁?這些問題,非常重要。
很顯然,法學院不能只是訓練學生的法律技巧,它必須充實學生的人文素養,和廉能無私的價值觀。後來的發展顯示,哈佛法學院雖仍繼續採用蘇氏教學法,但也加 入許多配套措施,匡正其不足。除了正規的倫理課程以外,哈佛法學院經常邀請各領域的知名人士做專題演演,幾乎每天都有,題目不一定和法律有關。雖然沒有學 分,但參加的人很多,日積月累,也是很好的通識教育。
肆、手指與琴弦
一、三人行,必有我師
許多學生畢業後作了法官或律師,常常會跟我說,學校教了那麼多條法律,但實務上碰到的問題,好像都沒有教過。
這是事實。一方面學校教的多半是基礎的科目,像民法、刑法、訴訟法,但實務上發生的問題,都不在這些基礎科目上面;即使是教過的基礎科目,課堂上也只教一 些基本問題。真正有爭議,會打官司的問題,常常是一些疑難雜症,不在教科書裡面。
這種情形,當然不是法律系畢業生特有的現象。我在財政部工作的時候,許多經濟系、財稅系、會計系的學生,也有相同的問題。就我而言,我在學校的訓練是法 律,畢業到現在,有很長一段時間的工作卻是財經。坦白說,法律也好,財經也好,我的知識多半來自於工作的經驗。學校通常只提供方法和基礎的訓練,而工作場 所卻可以學到更多實用的知識。
前面提過,1984年夏天,我離開大學教職,到財政部關政司工作。當時關政司最重要的工作是關稅談判和關稅稅率的調整。各位知道,稅率的調整牽動各個產業 的發展、進出口廠商的營運和消費者的權益。譬如說巧克力在當時被當作是奢侈品,關稅稅率是75%。如果把稅率降下來,國內生產巧克力的廠商會面對進口產品 更大的競爭壓力,通常會採反對立場;但進口廠商及百貨店會贊成,因為售價降低比較好賣,同時消費者也有更多的選擇。衣服、鞋子、家具乃至於機器設備,都有 類似的利益衝突問題。要在衝突中取得平衡,須要對產業有深入的瞭解,也要有很好的溝通技巧。
調降稅率的草案做出來以後,除了說服相關的行政部門,最後還要送到立法院審議。立法委員代表各個產業的民意,常常會有不同的意見。站在備詢台上,你要應付立法委員各種各樣的問題。我在學校哪裡學過這些東西?
關政司做了五年,我國的關稅平均名目稅率,從30.81%降到12.57%,一方面促進產業轉型,另方面也為此後加入WTO鋪路。這當然不是我的功勞,是 結合許多政府及民間機構共同努力的結果。我要說的是,學校沒有教的,也可以在工作中學習,並且順利完成任務。
處理愈多的事情,你就會發現,知識的基礎愈廣博,愈容易進入狀況。胡適之勸人讀書不但要精,而且要博 ,他說:「理想中的學者,既能博大,又能精深。精深的方面,是他的專門學問。博大的方面,是他的旁搜博覽。博大要幾乎無所不知,精深要幾乎惟他獨尊,無人 能及。他用他的專門學問做中心,次及於直接相關的各種學問,次及於間接相關的各種學問,次及於不很相關的各種學問,以次及毫不相關的各種泛覽。這樣的學 者,也有一比,比埃及的金字三角塔」。因此,他認為讀書的目標應當是:「為學要如金字塔,要能廣大要能高」。
這段話有人認為陳義過高,不容易做到。但我認為可以做為一個努力的目標。能夠多做一分,就會有多一分的好處。
我也常想起諸葛亮做事的方法。陳壽說諸葛亮「長於巧思」,經過他改造的弓箭,一次可發射十支箭矢(叫做連弩);為了解決崎嶇山路上的運輸問題,他又發明木 牛流馬;他經歷無數次的戰役,推演兵法,做成「八陣圖」,讓敵軍吃足苦頭。諸葛亮過世後大約五十年,陳壽的三國誌說他是「識治之良才,管蕭之亞匹」。這樣 一位識治的良才,其實也是不折不扣的通才。
為什麼有這樣的成就?除了天分,我想和他勤於汲收新知的習慣有關。諸葛亮擔任蜀國丞相的時候(221-234),特別強調集思廣益的重要性,經常鼓勵他的 同事踴躍發表意見,並且耐心的和他們詳細討論。他說,不同的意見經過反覆論辯,可以得出好的結論,這時就像丟掉破草鞋而獲得珠玉一樣的寶貴。(「夫參署 者,集眾思、廣忠益也,若遠小嫌,難相違復,曠闕損矣。違復而得中,猶棄弊蹻而獲珠玉」。)當年董和協助諸葛亮處理政務期間,經常不厭其煩的提出建言,並 且反覆與諸葛亮論辯。董和過世後,諸葛亮非常感念他的貢獻,認為那樣的論辯讓他的決策減少許多錯誤,因此就以董和為例,勉勵群臣仿效。現在看來,諸葛亮的 通博,可能和他勤於集思廣益的作風有關。
美國聯準會主席柏南克(Ben Bernanke)給人的印象也是如此。他總是耐心而專注的聽取別人的意見,然後用心思索,認真與相關人員論辯。「三人行,必有我師」,真能做到這一點,不管在什麼地方,你都可以學習。
二、雪中跋涉除 了知識方面的訓練,哈佛給我的印象是敬業。剛才提到哈佛法學院草創時期的情況,它也曾經散漫、呆滯、匱乏;但今天它是舉世公認的法學重鎮。聯邦最高法院現 任的9位大法官,有5位是哈佛法學院的畢業生,包括院長John Roberts及大法官Stephen Breyer、Anthony Kennedy、Antonin Scalia及David Souter(此外,大法官Ruth Ginsburg先到哈佛法學院就讀,後轉到哥倫比亞法學院,也算是哈佛的校友)。為什麼會有這種轉折變化?原因很多,但我認為敬業是最重要的因素。
記得有一年麻州大雪,一夜之間積雪數呎,交通電訊全部中斷,州長宣布停止上班上課,全州進入緊急狀態。我住在學校宿舍,好奇的穿過校園,到教授研究室看 看,卻發現老師多半都在。我的指導教授Louis Loss告訴我,他在積雪中奮鬥了將近一個小時,終於走到研究室。當然,他不是特例。30年來,那一幅老教授雪中跋涉的畫面,一直留在心頭。
三、不做無益事既 要顧好課業,又要努力汲取課外的知識,有人會抱怨時間不夠。這或許是事實,但時間如何利用也很重要。林語堂有句話,值得大家參考:「懂得把需要做的事情做 好,更懂得不去做不需要做的事情,這便是人生的智慧。」(Besides the noble art of getting things done, there is the noble art of leaving things undone. The wisdom of life consists in the elimination of nonessentials. )我們從小的訓練,偏重在如何把事情做好,卻往往忽略如何擺脫繁瑣無益的雜事。林語堂告訴我們,去除那些可有可無的瑣事,生活的空間會更寬廣。
事實上,兩千五百年前,老子就指出:「埏埴以為器,當其無有器之用。鑿戶牖以為室,當其無有室之用。故有之以為利,無之以為用。」(老子道德經第十一章) 我們拿陶土來做杯子,外面那一層實體,只是工具,對我們有用的,是中間空的部分,因為它可以裝水。我們今天聚在這裡,分享讀書之樂,房子對我們有用的部 分,也不在於四周的牆壁或屋頂,而是中間空的部分。
時間必須先空出來,才能加以利用。因此,懂得把時間空出來的人,才是真正懂得利用時間的人。
四、達觀的天才有人也會抱怨,生活中充滿了挫折。我要坦白告訴大家,人生難免會有挫折,而且挫折的發生跟你有沒有才華、用不用功,都未必相關。我時常想起蘇東坡的故事。
林語堂用英文寫的蘇東坡傳(宋碧雲翻譯),一直到現在還是暢銷書。你一定讀過「和子由澠池懷舊」:「人生到處知何似?應似飛鴻踏雪泥,泥上偶然留指爪,鴻 飛那復計東西?老僧已死成新塔,懷壁無由見舊題,往日崎嶇還記否?路長人困蹇驢嘶。」蘇東坡二十五歲寫這首詩(一O六一年),那時他路過河南澠池入陝西任 官,收到子由來信,提及4年前兄弟一同赴京趕考時「舊宿僧房壁共題」的往事。東坡舊地重遊,僧已圓寂,壁上題字也不復可見,不免感嘆人世的無常。
但東坡的感慨照理應該有限度的。4年前與子由同榜進士,順利踏上仕途,前程無限,正當是春風得意馬蹄疾的時候;然而詩中卻瀰漫著人世的蒼涼多變。難道東坡此時已經預見他坎坷的前路?
東坡天才高妙,世所共認;但自中年以後,卻遭逢一連串的橫逆。1079年7月爆發烏台詩案,東坡以訕謗朝廷的罪名在湖州(浙江宜興)被捕,押解回汴京(開封)下獄,至同年除夕獲釋,隨即貶至黃州(湖北黃岡)。
在大牢之中,還發生一段有趣的故事,後來成為電視劇「宰相劉羅鍋」的劇情。話說劉羅鍋多言賈禍,被捕下獄,家人與他有默契,假如送去的牢飯是青菜淡飯,表 示相安無事;但如果是大魚大肉,就是死罪定讞。後來和珅知道這樁秘密,就把送飯的人灌醉,換上大魚大肉,劉羅鍋一看,嚇得耳?都聾了。這段劇情,除了嚇聾 那一段是杜撰,壞心的和珅換成好心的鄰居之外,其餘都是蘇東坡的真實故事。
烏臺詩案之後,東坡就深陷在政爭之中,浮沉由人。1094年10月,東坡再貶至惠州(廣州),三年後再至儋州(海南島);白鬚蕭散的東坡就在那蠻荒天涯度 過風燭殘年,直到過世前一年(1100年)的五月才奉詔內遷廉州(廣西),次年七月就病逝在北歸的途中。
面對災厄挫折,東坡當然感傷。臨終前兩個月,東坡在李龍眠為他作的畫像上,題下如此詩句:「心似已灰之木,身如不繫之舟,問汝平生功業,黃州惠州儋州。」 悲涼中猶有自嘲。儘管如此,東坡的人生基調依然坦蕩豁達。歷經長年的貶謫之後,在離開海南島的船上,他寫道:「雲散月明誰點綴?天容海色本澄清」、「九死 南荒吾不恨,茲游奇絕冠平生」。他的心中,天清月明,一切屈辱都如烏雲消散無蹤;放逐荒島的一千多個日子也成了「奇絕冠平生」的旅遊。林語堂以「達觀的天 才」(gay genius)總結東坡一生,良有以也。
在我看來,東坡最令人感動的地方,是他處理逆境的態度。他淡泊以對,而且能夠轉化昇華。他一生最好的作品,大概都是在貶居期間寫的,像大家所熟知的前、後 赤壁賦、念奴嬌赤壁懷古、定風波、題西林寺壁等等,都是黃州時期(1080至1084)的傑作。經歷大風大浪之後,人生更臻新境,經過轉化昇華,文章也不 同了。
五、轉化昇華歷史上,這種困厄中堅強轉化的例子很多。
例如司馬遷。紀元前99年李陵降匈奴,司馬遷(145B.C.-86B.C.)為李辯解,認為李事親至孝,為國盡忠,必不至真降,可能只是權宜之計。漢武 帝大怒,太史公被處死刑。當時司馬遷已經花了五年時間撰寫史記,為求完成這部作品,他忍辱接受宮刑以替換死刑。極度屈辱中,又花了六年時間,於紀元前93 年完成鉅著。
曹雪芹(1715-1764)是另一種典型。半生榮華富貴之後,由於父親捲入政爭,不但被革職查辦,而且全家被抄,家道由高峰跌落峽谷。曹雪芹幾乎三餐不 繼。苦厄中,埋首於紅樓夢的寫作。「滿紙荒唐言,一把辛酸淚,都云作者癡,誰解其中味?」
世間人都知道,水可以載舟,可以覆舟。其實災厄也一樣。有人在困頓憂傷中滅頂,有人卻能擦乾眼淚,奮力游到彼岸,開創一片新的天地。
六、手指與琴弦我 要強調家庭和朋友的重要。困頓挫折中,如果有家人及朋友的支撐,情況會有很大的不同。奧斯卡最佳影片「美麗境界」(A Beautiful Mind)所描述的諾貝爾經濟獎得主納許(John Nash)的遭遇,清楚表達此點。許多例證也都顯示,朋友和家人的安慰與鼓勵,讓許多瀕臨絕望的人,撐過最困難的時光。
即便是在平日,朋友也很重要。「千山鳥飛絕,萬徑人蹤滅,孤舟蓑笠翁,獨釣寒江雪。」(唐,柳宗元,773-819)冰天雪地之中,一個垂暮的老人,寒江 獨釣。雖然畫家筆下,這是一幅絕美的國畫,但在現實人生中,我不會嚮往這樣的情境。
看來王維也是孤獨的。「中年頗好道,晚家南山陲。興來每獨往,勝事空自知。行到水窮處,坐看雲起時。偶然值林叟,笑談無還期。」(唐,王維,701- 761)。王維30歲喪妻之後,一直過著獨身的生活。顯然他身邊也沒有幾個知心的朋友,否則就不會有「興來每獨往,勝事空自知」的感嘆。
時代(Time)雜誌曾經專題報導,生活中有那些事情對壽命的增減產生影響。長期的孤獨落寞是減分的項目;另方面,如果有好朋友定期聚會,聊聊天、吃吃 飯,暫時忘掉煩憂,壽命會延長二年至三年。(希望今天的聚會,也會有加分的效果)
人與人相處其實是很奇妙的。我借用兩首詩來說明。首先,唐朝大詩人韋應物(737-789)拿石頭和水做比喻:「水性自云靜,石中本無聲,如何兩相激,雷 轉空山驚。」水和石頭,本性都是安靜的,互相不接觸的時候,寂靜無聲。但如果碰在一起,那飛瀑流泉撞擊石頭的聲音,卻是「雷轉空山驚」。
三百年後,蘇東坡以手跟琴弦來做譬喻:「若言琴上有琴聲,放在匣中何不鳴?若言聲在指頭上,何不於君指上聽?」琴聲究竟從那裡來?不在手指,也不在琴弦,而是在手指碰觸琴弦的時候。
這兩首詩有異曲同工之妙,講的都是緣起性空,因緣合和的道理。在我看來,它們也可以說明人際關係的奧妙。手指頭如果不去撥弄琴弦,永遠不會有聲音,就像兩 個人雖然比鄰而居,如果沒有互動,便是老死不相往來。但是一個優秀的提琴手,指尖所到之處,便是悠揚美好的琴音。水和石頭也是如此;人與人之間的關係也可 以作如是觀。
伍、問與答
包副校長:剛剛聽到大法官精闢的演講,把過去整個學思歷程非常生動的呈現出來,提到為學要如金字塔,要能博大要能高,大法官即是如此,他有高的、專精的部 份,亦有博大的部份,就是他的常識、閱歷非常的豐富。剩下半個小時大家可以自由的把想法、問題提出來,賴大法官本身就是一個寶庫,用半小時時間挖掘更多的 寶藏。現在開始,發問時先提一下就讀的系所,讓大法官也能認識你。
問:我是政治系學生,剛才大法官提到為學要如金字塔,顯然您是很強調通識教育的部份,但是現在很多的法官都是應屆考上或是很多老師都是非常年輕的,您如何 看待法官、老師等如此重要的行業由一些剛剛踏出校門之年輕人擔任?或者您不認為這是一個問題。
答(賴英照大法官,下同):這是一個好問題。建議他們踴躍參加「我的學思歷程」的演講活動(一笑),這是很好的通識教育。
基本的問題是法學教育及法官產生方式的改革。國內相關單位正在討論要不要走美國的模式,也就是大學畢業才能唸法學院,唸完法學院要做幾年事,然後才能作法官。
在法學教育方面,美國的大學部沒有法律系,必須讀完大學才能進法學院讀法律,這是哈佛法學院第一任院長Langdell建立的制度。剛開始 Langdell規定有兩個方式可以進法學院,一是考試,另一個就是要有大學的學位。由於考試是考拉丁文或法文,那個時候年輕人很少會拉丁文和法文,所以 這個管道形同虛設;到最後就明文規定只有大學畢業的人才能進法學院。
在工作經驗方面,各位知道美國最好的法學院畢業生,都會到法院做法官的助理(clerk),能夠做聯邦最高法院大法官的助理,是最頂尖的畢業生。助理做一 年或兩年,就出來做律師、行政官或其他工作;做一段時間之後表現良好,經過一定的遴選程序,由總統提名國會同意後擔任法官;那時候,他們已經有相當程度的 人生歷練。
當然,美國的制度不一定完美,但我們現在的制度確實會產生人生歷練比較少的法官。這個問題,除了制度面的改革,我們也鼓勵年輕的法官在工作中努力吸收經驗和知識。
問:您好,我是牙醫系的學生,我想請問剛剛法官您提到專業跟倫理方面的問題,人在決定一件事情的時候,心中都有一把尺,我想那把尺就是每個人的道德觀念, 可是觀念是會隨著時代而改變,我想請問就我們所處這個時代而言,人的倫理應該要怎樣去重建?還有他的尺度在哪兒?因為它並不像法律一樣有明確的條例可依 循。
答:一個簡單的答案就是,怎麼樣做可以讓世界更美好、國家更美好、社會更美好,也讓你的家庭更美好。以前我們講修身、齊家、治國、平天下,其實也是這個道理。
倫理的觀念當然有一些灰色地帶,不過大的方向蠻清楚的。今天你是老師,就認真的教書,認真的培養學生;是學生,就要尊敬老師,努力學習做人做事的道理,並 且盡情的吸收知識。你將來做了牙醫或是其他行業,你心裡想的是,怎麼樣做好每一個細節,讓進來的病患得到很好的服務;如果一個窮人進來,應該用怎麼樣的方 式來幫助他。
倫理其實是各行各業共通的問題。我是學財經法的,財經法有一個很核心的制度,就是公司制度。我們的食、衣、住、行、育、樂哪一樣都不能脫離公司。我面前這 個桌子、頭上的電燈是公司造的,麥克風、衣服是公司造的,我們中秋節連續假期去渡假,旅行社也是一家公司。現在的經濟如果把公司制度抽離,世界會變成什麼 樣子?恐怕很難想像。公司ㄧ個基本的問題是:公司為何而存在?經營者為誰而經營?是為股東的利益?還是為社會的利益?這中間有些是合諧的、有些是衝突的, 怎麼樣去處理這些問題?這要換一個題目才能講清楚。但最終的答案還是怎麼樣設計制度,讓公司的存在使世界更美好。
問:我是家庭主婦,請問大法官我們國家到底有沒有獨立檢察官制度?
問:剛剛聽大法官講學思歷程,我非常感動也羨慕,好像大法官唸書的過程之中,柳暗花明一關一關的過,可是聽到最後,我覺得大法官每次講到有什麼人生灰色的 時候,就會立即轉到蘇東坡或是轉到別人去,請問大法官有沒有人生低潮,又是如何度過的?
答:謝謝張教授的問題。將來有機會寫回憶錄的話,這一部份會詳細記載(一笑)。坦白說,不管是學業上或是工作上,我是經歷過一些灰心的時刻。我喜歡看傳 記,看到有很多人都經過許多挫折,包括成就卓越的科學家、文學家。為何舉蘇東坡做例子?因為蘇東坡大家比較熟悉。事實上,蘇東坡的挫折比我大得多。死前一 年朋友幫他畫一幅像,東坡在畫像上寫一首詩,其中有兩句是:「問汝平生功業,黃州、惠州、儋州」。意思是,我蘇某人一生的功業是什麼?就是不斷的被貶,而 且一次比一次遠,從黃州(湖北的黃岡),到惠州(廣東嶺南),到儋州(海南島)。到了海南島,受盡苦難,離開的時候,還說「九死南荒吾不恨,茲遊奇絕冠平 生」。比起蘇東坡,我的挫折太小了,東坡可以那麼豁達,我為什麼不能安然面對不愉快的事?
問:大法官好,我是法律系四年級學生。您剛剛提到有關您專業部分是法律學系專業,我想請教您覺得法律學是一門專業的學問嗎?,這點其實很多人都非常的存 疑。譬如說賴先生的專長在於公司法跟證券交易法,研究之後您就會發現,其實公司法跟證券交易法它主要的研究核心可能不會在一些簡單的法學方法論上,而是譬 如說公司治理、金融市場實務的問題,而賴先生說專業在法律這一點我比較沒辦法認同,因為我覺得法律其實不是一門專業的學問,這是第一個問題。第二個問題, 延伸下來您剛剛有提到您對於法律的改革有一些可以參與討論的機會,我想請教從您的學思歷程來看,您對於這個學門應該怎麼走?
答:法律是不是一門專業的學科?剛才的談話已碰觸到這個問題。譬如建築法,都市計畫法,表面上是法律,但骨子裡它是建築和社區規劃的學問。建築法如此,公 司法等財經法律也是如此。如果你懂會計、看得懂帳,公司法228條以下那些公司會計的條文,對你來講是活的,你曉得這些規定到底怎麼回事;如果你完全沒有 會計概念,唸到那一節,你不會真正瞭解它在講什麼。
剛才提到美國法學教育,學生必須大學畢業才能進法學院,目的就是要學生先有一個專長。我們的法學教育將來如果能夠朝向美國式的方式發展,應該是對的(當然 可以再作改良)。舉個實務的例子來說明,譬如某公司電腦網路產品有沒有獨占?有沒有獨占化的行為(monopolization)?如果一個律師大學讀的 是資訊系或是電機系之類的,他們談起這些問題,頭頭是道。我們的法律系畢業生做了律師,如果不是很努力去吸取其他學科的知識,而是照著學校課程上來的話, 他們講什麼,可能聽不懂。這個情況不是只有資訊科技才有,在別的領域也一樣。從科技整合的角度看,如果法律系學生學會了法律基本的東西,也能加上其他專業 的知識,是很好的事情。
可是,如果說法律不是專業,那麼一個沒受過法律專業訓練的人來寫建築法、都市計畫法、公司法,雖然了解都市計畫怎麼規劃、房子如何蓋,公司如何經營,但寫 出來的條文可能不夠「專業」,也就是不夠嚴謹,甚至前後矛盾,導致執行上發生更多的爭議。而且爭議發生後,如果循訴訟程序解決,一個沒有受過法律訓練的 人,如何上法庭為當事人辯護?事實上,法律的制定、解釋和執行,都需要專業的訓練。
問:延伸下去的問題,大法官您的身分是政務官、大法官又是教授,經過這三十年來的法律與您當時所學的法律已是面目全非了,整個思潮都已完全改變,請問您是否有與時俱進?
答:有機會你可以到書店看看,我今年二月才出版一本新書,51萬字,就是希望能與時俱進。
問:大法官您好,剛才精闢的演講非常欣賞,我是藥學系的學生,我的問題是現在的資訊爆發,很多東西都是每天update,如果沒有好好學習知識的管理,感 覺會被淹沒在知識的洪流裡,要如何捨棄不需要的而留下需要的東西,請問大法官那麼多東西那麼多專業要學,什麼東西是優先的、什麼東西是應該要捨棄掉的?謝 謝!
答:我覺得在學校裡最重要的就是方法的訓練,譬如說讀法律有法律的方法;有了方法訓練之後,就能解決問題。剛剛同學講的對,法律不斷在改,舊的法律改成新 的法律,以前沒有的法律,現在新定出來。碰到法律問題,自己要有解決的方法。第一步你必須了解問題在哪裡;第二步你懂得去找相關法令,和有用的資料,哪一 些書、文章有討論這一類的問題;第三步你懂得消化這些材料,懂得把各家的學說做歸納、整理及分析。最後你還要做判斷,你認為這個問題應該如何處理是最好 的,這裡當然有邏輯,也有價值觀。如果你熟悉這些方法,只要你有興趣、有時間、有工具,就可以把一個問題解決,這是大學部應該有的能力。到了研究所,你還 要訓練如何寫論文,也就是問題解決以後,能夠條理分明的把它寫出來。
當然,不同學科有不同方法,你一定要學會自己本科的方法。其次,如果照胡適之的標準,我們還要學會相關學科的方法。我不是學醫的,希望這個回答對你有點參考價值。
問:大法官好,我是國發所法律組的學生,我現在想給大家來點溫馨的,我們知道在經營人生的過程裡家庭是一個很重要的核心,請問大法官您經營家庭生活的指導 及您對小孩教育的看法,我不是窺探您的隱私,當然您可保留部分隱私。
答:我非常樂意跟大家分享,我內人就在台大外文系教書,今天在場的趙院長永茂、陳院長保基、陳教授益明、蘇教授以文,還有好幾位老師,跟我太太都熟。家庭 是一個很重要的地方,如果彼此互相了解、互相體諒、互相欣賞,家庭也會是一個很美好的地方。
人在挫折的時候,家庭是一個支撐的力量。今天有經濟系的同學在座,知道約翰納西(John Nash)的故事,電影美麗境界(A Beautiful Mind)就是演他的故事。John Nash如果沒有太太的幫忙,他的人生不可能有好的結果。家庭是非常重要的。
你還沒有結婚,祝福你找到一個不會讓你變成哲學家的太太(一笑)。
順便跟同學講講關於朋友的事情。今天在座的老師也許有相同的經驗,就是學生時代最容易交朋友,出了社會以後就比較不容易;基層的公務員可能機會還大一點,如果你是主管機會就少多了。
人與人之間的相處其實是蠻奇妙的事,有些人比較投緣,有些人就是比較不投緣,蘇老師告訴我,這個緣叫做chemistry。不管如何,與人為善,把對方當 做朋友,是很好的態度。韋應物的詩:「水性自云靜,石中本無聲,如何兩相激,雷轉空山驚」。石頭跟水不相碰的時候是沒有聲音的,碰在一起卻是「雷轉空山 驚」。四百年後,蘇東坡用琴弦跟手指頭來做比喻:「若言琴上有琴聲,放在匣中何不鳴?若言聲在指頭上,何不於君指上聽?」聲音如果從琴上面來,把琴放在琴 匣裡,它安靜無聲,如果聲音從手指頭來,光是聽手指頭也沒有聲音。只有手指頭碰到琴弦的時候才會有聲音。人與人之間關係,就像手指頭根琴弦一樣,如果亂彈 一通,聲音是很難聽的;反之,如果你很用心的去彈,善意的對待你的同學和朋友,它會彈奏出非常悠揚的樂章出來,而且這些樂章會伴你一生,讓你的生命更美 好。
問:大法官您好,我是會計系的學生,請問現在大法官,釋憲之後如認為有違憲之疑的時候是要重新提起再審,如此對當事人會不會過於冗長?如無法直接對個案發生效力的話,會不會對當事人造成過大的困擾?
答:這個問題可以講一個鐘頭(一笑)。這牽涉到釋憲機關如何設計的問題,我們現在的制度比較像奧國和德國,但跟美國不一樣,如果要個案審查,直接對當事人發生效力,可以仿效美國的方式,這也是司法院提出的司改方案。非常高興會計系同學對憲法問題有這麼多的了解,非常好。