eDMA函数vKeep参数解析异常:eval(parse)未返回预期c(1,2)
问题原因解析
- 核心原因是
eval(parse(text=...))的执行逻辑导致的:parse(text=...)会把CSV里的字符串"c(1,2)"解析成R的表达式,eval()接着执行这个表达式,最终返回的是实际的数值向量对象(包含1和2的向量),而非字符串形式的"c(1,2)"。 - 在R的默认打印规则中,长度大于1的数值向量会以空格分隔的形式输出(比如
1 2),这是向量的正常显示格式,并非执行错误。如果需要保留c(1,2)的字面写法,不要使用eval(),直接读取CSV里的原始字符串即可。 - 举个直观的验证例子:
# 执行c(1,2),输出就是空格分隔的1 2 c(1,2) # [1] 1 2 # 要得到"c(1,2)"的字符串形式,直接调用原始字符串即可 "c(1,2)" # [1] "c(1,2)"
内容的提问来源于stack exchange,提问作者Sulz
相关产品推荐
相关产品推荐

