【发布时间】:2012-09-24 23:52:14
【问题描述】:
contrast=list("1"="profit")
input=readline("please input")
please input1
input
[1] "1"
class(input)
[1] "character"
contrast[[input]]
[1] "profit"
contrast$"1"
[1] "profit"
contrast$input
NULL
为什么contrast$input 不等于contrast$"1"?
输入的值为“1”,类也是字符。
eval(input)
[1] "1"
contrast$(eval(input))
Error: unexpected '(' in "contrast$("
contrast$eval(input)
Error: attempt to apply non-function
eval(paste(input))
[1] "1"
class(eval(paste(input)))
[1] "character"
contrast$eval(paste(input))
Error: attempt to apply non-function
contrast$(eval(paste(input)))
Error: unexpected '(' in "contrast$("
有没有办法通过 contrast$input 获取值?
【问题讨论】:
-
来自文档:“[[ 和 $ 都选择列表的单个元素。主要区别在于 $ 不允许计算索引,而 [[ 允许。x$name 相当于 x [[“名称”,确切 = FALSE]]“
-
你的意思是我永远无法通过 contrast$input 获得价值?
-
@FfYy 就像 joran 提到的那样——你就是做不到。但是,当完美的替代品
contrast[[input]]可用时,您为什么要这样做呢? -
@joran,发表您的第一条评论作为答案...? (我确定那里有重复或非常接近的重复,但现在懒得去寻找它们......)如果我尝试搜索
[r] "[[" "$",StackOverflow 不喜欢它跨度>
标签: r