Rscript:如何在作为内联代码传递的字符串中解释 $

Rscript: how is $ interpreted in strings passed as inline code

有谁知道如何在对 rscript 的内联调用中解释 $?

在下面的示例中,我试图让 z 成为 x 列表中的 "a" 元素。但是,z=x$a 给我 x 而不是列表的元素。

> Rscript -e "x = list(a=c(1,2,3), b=c(4,5,6)); z = x$a; print(z); print(\"z$a\")"
$a
[1] 1 2 3

$b
[1] 4 5 6

[1] "z"

请注意,即使在 print 语句中,$ 也会导致一些模糊的行为。我本以为它会打印 z$a,但它却打印了 z。

两个问题:

  1. 在用作内联的字符串中如何准确解释“$” 代码到 Rscript?
  2. 如何引用列表中的元素 传递给 rscript 的内联代码?

似乎在内联代码中使用 \$ 而不是 $ 就可以了。

>/lrlhps/apps/R/R-3.1.1/bin/Rscript -e "x = list(a=c(1,2,3), b=c(4,5,6)); z = x$a; print(z); print(\"z$a\")"
[1] 1 2 3
[1] "z$a"

不过,有人知道“$”的作用吗?

要回答你的第二个问题,你可以x[['a']]