gpt4 book ai didi

R:创建表达式向量的最简单方法(单行?)是什么?

转载 作者:行者123 更新时间:2023-12-04 09:24:48 26 4
gpt4 key购买 nike

有没有办法在一行中创建表达式向量?我只知道一个带有丑陋 for 循环的两行代码:

vexpr <- vector("expression", 7)
for(j in 1:7) vexpr[j] <- substitute(expression(italic(X[j.])), list(j.=j))[2]

最佳答案

as.expression( sapply(1:7, function(x) bquote(italic(X[.(x)]))) )
#-----------
# expression(italic(X[1L]), italic(X[2L]), italic(X[3L]), italic(X[4L]),
# italic(X[5L]), italic(X[6L]), italic(X[7L]))

identical(vexpr, as.expression( sapply(1:7, function(x) bquote(italic(X[.(x)]))) ) )
#[1] TRUE

还:
parse(text= paste("italic(X[", 1:7, "])", sep="") )  # fewer keystrokes
#--------
# expression(italic(X[1]), italic(X[2]), italic(X[3]), italic(X[4]),
# italic(X[5]), italic(X[6]), italic(X[7]))

(第二个将不会通过 same() 测试,因为它带有其构造的遗产。我认为这些是字节码副作用,在 R 版本 2.14.0 中出现的增强,因此它可能会以不同的方式出现在早期版本中。您可以通过对其应用 str() 来检查这一点。但是,它确实通过了将正确的 x 轴标签应用于 plot(1:7, xaxt="n"); axis(1,at=1:7, labels=...) 的测试)

关于R:创建表达式向量的最简单方法(单行?)是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8280518/

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