在变量名中加入负号或减号的方法

时间:2013-07-24 19:01:01

标签: r variables

R 仅接受字母数字字符," dot"和#34;下划线"在变量名称中。我的名字有tmax_60_days_Dec13-Feb13_meantmax_60_days_Dec13-Feb13_tmax:>=:-5。使用这样的系统,所以我可以轻松地解析选择的子字符串,也因为我正在计算滚动方式并将这些条件本身用作名称:o

直到最近,我还是使用get或者手动删除“撇号”来解决问题。其中knitr已添加。

但是,当我尝试在partyrandomForests等函数中使用数据域的这些变量/列名时,它就会适得其反。他们没有得到承认

我可以将冒号和爆炸改为点或下划线,但我更喜欢其他一些可能性。并且"> ="到" ge"和"< ="到" le"。但是,人们如何编码"否定"或"减去"如果要将其包含在数据框的变量名称或列名中,请签名吗?

我想到了用#34; neg"来加上数字的前缀。或者"减去",但是想问一下是否有更多的优雅的方式,或者只是想知道人们管理它的其他方式。 感谢

1 个答案:

答案 0 :(得分:1)

您可以使用comment功能:

x <- 1:10
comment(x) <- "this is a comment"
 y <- 1:10
 comment(y) <- "this is another comment"
 xy <- data.frame(x=x,y=y)
 str(xy)
 #----------------    
 'data.frame':  10 obs. of  2 variables:
 $ x: atomic  1 2 3 4 5 6 7 8 9 10
  ..- attr(*, "comment")= chr "this is a comment"
 $ y: atomic  1 2 3 4 5 6 7 8 9 10
  ..- attr(*, "comment")= chr "this is another comment"
 #--------------
 comment(xy$x) <- "prod"
 comment(xy$y) <- "sum"

interpret <- function(x) eval(parse(text=paste0(comment(x) ,"(",quote(x),")") ) )
lapply(xy, interpret)
#-----------------
$x
[1] 3628800

$y
[1] 55

更广泛的响应需要一个值得进一步测试的数据对象。