3

R只接受变量名称中的字母数字字符、“点”和“下划线”。我有类似tmax_60_days_Dec13-Feb13_meanor的名字tmax_60_days_Dec13-Feb13_tmax:>=:-5。使用了这样的系统,所以我可以轻松解析选择子字符串,也因为我正在计算滚动平均值并将这些条件本身用作名称:o

直到最近,我都摆脱了它,使用get或手动删除knitr添加的“撇号”。

但是,当我尝试在partyor之类的函数中使用这些数据名的变量/列名时randomForests,它适得其反。他们没有被认出

我可以将冒号和连字符更改为点或下划线,但我更喜欢其他一些可能性。而 ">=" 到 "ge" 和 "<=" 到 "le"。但是,如果您想在数据框的变量名或列名中使用“负”或“减”号,人们如何对其进行编码?

我想在数字前加上“neg”或“minus”,但想问问是否有更优雅的方式来做这件事,或者只是想知道人们管理它的其他方式。谢谢

4

1 回答 1

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

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

于 2013-07-25T01:48:15.253 回答