使用R中的变量定义$ right参数

时间:2010-06-20 13:38:47

标签: r

我想将变量传递给二元运算符$。

让我说我有这个

> levels(diamonds$cut)
[1] "Fair"      "Good"      "Very Good" "Premium"   "Ideal" 

然后我想创建一个函数,将$

的选择器作为参数
my_helper <- function (my_param) {
  levels(diamonds$my_param)
}

但这不起作用

> my_helper(cut)
NULL

> my_helper("cut")
NULL

3 个答案:

答案 0 :(得分:9)

使用[[代替$x$yx[["y"]]的简写。

my_helper <- function (my_param) {
  levels(diamond[[my_param]])
}
my_helper("cut")

答案 1 :(得分:1)

如果没有对象本身的访问权限,则无法访问对象的组件,这就是my_helper()失败的原因。

您似乎对R对象有点困惑,我强烈推荐一个体面的介绍性文本。在CRAN网站上有一些好的免费版本,还有一些不错的书籍。例如,SO就有很多线索。

答案 2 :(得分:1)

尝试这样的事情:

dat = data.frame(one=rep(1,10), two=rep(2,10), three=rep(3,10))
myvar="one"
dat[,names(dat)==myvar]

这应该返回数据帧dat的第一列/变量

dat$one --> [1] 1 1 1 1 1 1 1 1 1 1