在R列名称中使用标点符号

时间:2017-08-21 18:57:53

标签: r string dataframe

问题:

我(尝试)在R中构建data.frame,其中列名有时包括标点字符,例如" "。

然而,R将这些转换为" " ,例如:

代码

t= data.frame("a?a" = c(1,2,3), "bee" = c(200,300,400))

t= data.frame("a.a" = c(1,2,3), "bee" = c(200,300,400))

都返回

t
  a.a bee
1   1 200
2   2 300
3   3 400

我也无法逃避工作(并且希望避免它,因为我有很多没有特殊字符的字符串)。

t= data.frame("a\\?a" = c(1,2,3), "bee" = c(200,300,400))

> t
  a..a bee
1    1 200
2    2 300
3    3 400

问题:

我想在我的列名中包含问号和点等字符(列包含正则表达式搜索的结果);至少,它们应该保持清晰。

  • 有没有办法这样做?

我觉得这可能以前没有被提起但是在这里找不到;感谢任何指针。谢谢!

1 个答案:

答案 0 :(得分:4)

data.frame的列名应该是有效的变量名,以便与支持非标准评估和公式接口的函数一起使用。 data.frame函数通过make.names()函数为您“清除”名称来强制执行此要求。如果您坚持使用“无效”名称,只需将check.names=参数设置为FALSE。

data.frame("a?a" = c(1,2,3), "bee" = c(200,300,400), check.names=FALSE)
#   a?a bee
# 1   1 200
# 2   2 300
# 3   3 400