0
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$("

コントラスト$入力を介して値を取得する方法はありませんか?

4

1 に答える 1

6

これは不可能です。ドキュメントから ( ?Extract):

「[[ と $ の両方がリストの 1 つの要素を選択します。主な違いは、$ は計算されたインデックスを許可しないのに対し、[[ は許可します。x$name は x[["name", exact = FALSE]] と同等です。"

一般に、$はインタラクティブな使用を目的としていますが、プログラミング (スクリプト、関数など) には を使用する必要があります[[

于 2012-09-25T00:41:08.440 に答える