奇怪的事情肯定會發生 - 是所有的錯誤信息?
如果我把你的代碼回到基本知識,並註釋掉所有我不能跑,因爲我沒有你的數據文件中的東西,下面的功能而不會出現錯誤:
dynamicwilcox <- function(column,datacol) {
##dat <- read.table("all.txt") ## probably not good to call something t
if(column=="Ph") {
##uniphy=unique(c(t$Phylum))
##print(uniphy)
writeLines("column was 'Ph'")
}
if(column=="Cl") {
##uniclass = unique(c(t$Class))
##print(uniclass)
writeLines("column was 'Cl'")
}
}
R> dynamicwilcox("Ph", "A")
column was 'Ph'
也許你可以從上面的代碼開始,看看它是否適合你,如果它確實的話,建立它。
至於dynamicwilcox(Ph, A)
正常工作,除非您已經在當前環境中定義了對象Ph
和A
,否則它將無法工作。它不會打印任何東西,因爲無論存儲什麼在Ph
是不是等於"Ph"
或"Cl"
。如果你運行這兩行,你會得到什麼?:
R> Ph
R> A
希望這可以解釋爲什麼這種調用函數的方式失敗。
更新:至於改變功能使用readline()
所以它接受用戶輸入,這裏是一個版本:
dynamicwilcox <- function() {
ANSWER <- readline("What column do you want to work on? ")
if(ANSWER=="Ph") {
writeLines("column was 'Ph'")
} else if(ANSWER=="Cl") {
writeLines("column was 'Cl'")
} else {
writeLines(paste("Sorry, we don't know what to do with column", ANSWER))
}
ANSWER ## return something
}
這是在使用中:
R> dynamicwilcox()
What column do you want to work on? Ph
column was 'Ph'
[1] "Ph"
R> dynamicwilcox()
What column do you want to work on? Cl
column was 'Cl'
[1] "Cl"
R> dynamicwilcox()
What column do you want to work on? FooBar
Sorry, we don't know what to do with column FooBar
[1] "FooBar"
但不要讀?readline
,因爲它在你可以學習的一個例子中有類似的東西。
什麼是錯誤信息? – lecodesportif 2011-04-02 09:55:56
@lecodesportif:「dynamicwilcox」(「Ph」 中的意外符號,但是當我嘗試像這樣運行它時:dynamicwilcox(Ph,A)它不會給我錯誤,但腳本不會打印任何內容 – weblover 2011-04-02 10:15:13
@lecodesportif: thnx爲你的幫助,我發現了這個問題,我錯過了「在函數內部,但我試圖添加一個可以從鍵盤讀取的變量,並讓該函數基於它工作,但它不工作,你能幫助我?? – weblover 2011-04-02 10:47:34