You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言glue包解析变量时出现object 'position' not found错误的求助

解决glue解析CSS大括号时报错"object 'position' not found"的问题

这个问题我之前也碰到过!原因很简单——glue默认会把所有{}包裹的内容当作R变量来解析,而你的CSS代码里有大量{ position: ... }这类结构,glue误把position当成了一个需要解析的R变量,但你并没有定义这个变量,所以就抛出了找不到对象的错误。

解决方案

在glue中,如果你想保留文本里的{}而不让它被解析,需要把它们写成双大括号{{}},这样glue就会把它当成普通的大括号输出,而不会尝试解析里面的内容。

修正后的代码

library(glue)
asd <- "XYZ"
HTML(glue('<html> <head> <style> .dropdown {{ position: relative; display: inline-block; }} .dropdown-content {{ display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); padding: 12px 16px; z-index: 1; }} .dropdown:hover .dropdown-content {{ display: block; }} </style> </head> <body> <div class=\"dropdown\"> <span>{asd}</span> <div class=\"dropdown-content\"> <p>Hello World!</p> </div> </div> </body> </html> '))

说明

这段代码里,我们把CSS部分所有的单大括号{}都替换成了双大括号{{}},而需要解析的R变量{asd}保持单大括号不变。这样glue就只会解析{asd},把它替换成"XYZ",同时完整保留CSS里的大括号结构,运行后就能得到你期望的HTML输出了。

内容的提问来源于stack exchange,提问作者manu p

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 21:07:34