R中的全局变量声明和访问

时间:2012-09-13 13:06:25

标签: r

我正在使用一个数据框,我正在从测试文件中读取,如下所示

    Country,count
    uk,34
    au,35
    us,53
    in,44

这是我的R脚本。这只是一个例子。当我试图访问在for循环中创建的循环外的数据帧变量时,我发现找不到对象错误。即使我尝试使用assign。得到同样的错误。我正在使用R版本2.15.1。

    args <- commandArgs()
    #Storing the filename in fn given next to "--args"
    fn <- args[which(args=="--args")+1]
    t<-read.table(fn,sep=",",header=TRUE,as.is=TRUE,quote="")
    t
    for (i in levels(t$Country)){
            if ( i == us ) {
            RES <<- t[t$Country == i,]
            }
    }
    RES

    > args <- commandArgs()
    > #Storing the filename in fn given next to "--args"
    > fn <- args[which(args=="--args")+1]
    > t<-read.table(fn,sep=",",header=TRUE,as.is=TRUE,quote="")
    > t
      Country count
    1      uk    34
    2      au    35
    3      us    53
    4      in    44
    > for (i in levels(t$Country)){
    +       if ( i == us ) {
    +       RES <<- t[t$Country == i,]
    +       }
    + }
    > RES
    Error: object 'RES' not found
    Execution halted

我相信,我做错了什么。请指教。

1 个答案:

答案 0 :(得分:2)

大多数机会永远不会遇到if约束(i == us)

永远不会和我们相等。 尝试删除“级别”

 for (i in t$Country)
      if (i =="us")