r - 使用语法困难的字符串作为数据框中的列名

标签 r string syntax dataframe names

我正在使用类似于以下摘录的数据框:

df <- data.frame(A=c("Some messy string to be used",222,0), 
                 B=c("Very important ? indicator from 2001", 888, 44),
                 C=c("001 This variable / makes no sense", 888, 44),
                 D=c("Geography", 1, 2))

我想使用第一行的值作为列名,我使用下面的代码:

names(df) <- make.names(df[1,])

不幸的是,语法生成格式为 Xn 的名称,如下所示:

> names(df)
[1] "X3" "X3" "X1" "X3"

我知道使用的字符串对于 make.names 进行有意义的转换来说太乱了。 我怎样才能强制 R 以更有效的方式使用那些乱七八糟的字符串?根据经验,我想:

  1. 保留数字(因为它们对应于时间)
  2. 至少保留文本中的几个开头词
  3. 确保名称是唯一的
  4. 整个解决方案必须相当通用,因为第一行中有很多垃圾(通常是空格或特殊字符)。

最佳答案

您根本不需要使用make.names — 您可以直接 分配字符串。这在 R 中工作得很好。当您尝试将名称用作 R 名称时,您只需要反引号(例如在 $ 运算符之后):

names(df) = unlist(df[1,])
df$`Some messy string to be used`

关于r - 使用语法困难的字符串作为数据框中的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31535146/

相关文章:

r - 如何在ggplot2中为带有图例的垂直线添加标签

c++ - 从 char * C++ 中删除项目

java - 用java编写的java解释器

syntax - PlantUML:带有文本的嵌套组件可能吗?

jquery - 如果我使用 jQuery 语法 : $ ("<img src=' img. jpg'>") ,图像实际上会下载到客户端吗?

r - 在 Shiny 的 HTML 中嵌入 R 变量

R - 处理数据帧列表的惯用方式

r - 如何使用 imap 和 map 将列表列表写入 excel

javascript - 交叉文本以找到常用词

android - 字符串中的间距