R:为什么列名中的某些特殊字符会自动替换?

时间:2015-02-16 13:53:39

标签: r xts

在xts时间序列或数据框的某些列中,我有一个像〜的特殊字符。这没有问题。然而,一些代码行用a替换了这些〜。这是一个问题。例如,merge.xts替换这些字符。我怎么能避免这种情况?我目前的解决方法是在影响它们的任何操作后再次重命名列名,但我希望有一个更简单的解决方案?

THX

1 个答案:

答案 0 :(得分:1)

R有时(经常)使用non-standard evaluation。例如,lm()函数使用看似y ~ x + z的公式,R将其转换为model.frame。因此,如果你使用像~这样的特殊字符,事情会变得混乱。一个组成的示例将是名为+x的变量,可以很容易地转换为add x to something。因此,最好不要在变量名称中使用特殊字符(最好只使用字母)。有些函数用点等无害的东西替换特殊字符,以最大限度地减少错误的风险,这正是你所描述的。

因此,解决方案不要在变量名称中使用此类字符。如果你真的需要,那么我建议:(1)在做任何事情之前替换名字中的特殊字符 else,(2)做你的东西,(3)将名字改为初始名字。 / p>