【问题标题】:Using punctuation in R column names [duplicate]在R列名中使用标点符号[重复]
【发布时间】:2018-01-29 22:20:20
【问题描述】:

问题:

我正在(试图)在 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

问题:

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

  • 有什么办法吗?

我觉得这可能以前提出过,但在这里找不到;感谢任何指点。谢谢!

【问题讨论】:

  • 我认为这个问题与潜在的重复问题不同,它谈论的是标点符号而不是空格,这是另一个问题的唯一焦点。比如锅。重复。没有出现在我在这里的搜索中。

标签: r string dataframe


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 2016-07-17
    • 2014-03-07
    • 1970-01-01
    • 2016-01-05
    • 2020-06-16
    相关资源
    最近更新 更多