a["h-6ren">
gpt4 book ai didi

r - R中变量的内联扩展

转载 作者:行者123 更新时间:2023-12-04 10:50:42 25 4
gpt4 key购买 nike

我很困惑何时将值视为变量,何时将值视为 R 中的字符串。在 Ruby 和 Python 中,我习惯于始终必须引用字符串,而始终处理未引用的字符串作为变量。 IE。

a["hello"] => a["hello"]
b = "hi"
a[b] => a["hi"]

但在 R 中,情况并非如此,例如

a$b < c(1,2,3)

这里的b是列的值/名称,而不是变量b。

c <- "b"
a$c => column not found (it's looking for column c, not b, which is the value of the variable c)

(我知道在这种特定情况下我可以使用 a[c],但还有很多其他情况。例如 ggplot(a, aes(x=c)) - 我想绘制作为 c 的值的列,而不是名称 c)...

在其他 StackOverflow 问题中,我看到了引用、替代等内容。

我的问题是:是否有“扩展”变量并确保使用变量的值而不是变量名的通用方法?或者这不是 R 中的工作方式?

最佳答案

在您的示例中,a$ba[["b"]] 的语法糖。这是与列表一起使用时 $ 符号的一个特殊功能。第二种形式符合您的预期 - a[[b]] 将返回 a 的元素,其名称 == 变量的值 b,而不是名称​​为“b”的元素。

数据框是相似的。对于数据框 a$ 运算符引用列名。所以 a$ba[ , "b"] 是一样的。在这种情况下,要引用 bvalue 指示的 a 列,请使用 a[, b]

关于r - R中变量的内联扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16485890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com