从列表中包含的字符串命名 df 列

Posted

技术标签:

【中文标题】从列表中包含的字符串命名 df 列【英文标题】:name a df column from a character string contained in a list 【发布时间】:2017-12-06 05:42:39 【问题描述】:

如果我有示例列表Names

Names <- list(A = c("one", "two", "three"),
              B = c("three", "four", "five"))

是否可以使用列表中包含的字符串之一创建列标题?例如,下面的代码试图通过索引Names[[1]][1] 来创建一个名为One 的列,但显然不起作用。

data.frame(Names[[1]][1] = rep(5, 5))

任何建议将不胜感激。我试图用as.character() 包装,但仍在寻找解决方案。真实数据在循环中实现,需要Names 索引。期望的结果如下所示。

data.frame(One = rep(5, 5))

【问题讨论】:

也许与这个有关。 setNames(data.frame(rep(5, 5)), Names[[1]][1])?? 似乎运行良好,可以扩展为多个新列。好的。作为答案发布...? 起初,我以为这是重复的,但找不到合适的问题,因此回答它。 ***.com/questions/30083351/… 或 ***.com/questions/7531868/… 的可能重复 【参考方案1】:

我们可以使用setnames 将变量中的列名分配给数据框:

setNames(data.frame(rep(5, 5)), Names[[1]][1]) 

#  one
#1   5
#2   5
#3   5
#4   5
#5   5

当然也可以用于多列。

【讨论】:

以上是关于从列表中包含的字符串命名 df 列的主要内容,如果未能解决你的问题,请参考以下文章

如何处理版本列表中包含的字符串导致的错误,按StrictVersion排序?

计算 pyspark df 列中子字符串列表的出现次数

查找给定字符串中包含的字谜

是否有代码对列中包含的相似单词进行分组

一个R函数,它沿列查找多个对象

如何解决从字符串加载 XSL 的转换中包含的 XSL?