奇怪的事情肯定会发生 - 是所有的错误信息?
如果我把你的代码回到基本知识,并注释掉所有我不能跑,因为我没有你的数据文件中的东西,下面的功能而不会出现错误:
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