我(尝试)在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
我想在我的列名中包含问号和点等字符(列包含正则表达式搜索的结果);至少,它们应该保持清晰。
我觉得这可能以前没有被提起但是在这里找不到;感谢任何指针。谢谢!
答案 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