首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据框的两列转换为命名矢量

将数据框的两列转换为命名矢量
EN

Stack Overflow用户
提问于 2013-10-09 14:59:34
回答 5查看 22.4K关注 0票数 74

我需要将一个多行两列的data.frame转换为一个命名的字符向量。我的data.frame应该是这样的:

代码语言:javascript
复制
dd = data.frame(crit = c("a","b","c","d"), 
                name = c("Alpha", "Beta", "Caesar", "Doris")
                )

我真正需要的是:

代码语言:javascript
复制
whatiwant = c("a" = "Alpha",
              "b" = "Beta",
              "c" = "Caesar",
              "d" = "Doris")
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-10-09 15:12:51

使用names函数:

代码语言:javascript
复制
whatyouwant <- as.character(dd$name)
names(whatyouwant) <- dd$crit

as.character是必需的,因为data.frameread.table使用默认设置将字符转换为因子。

如果你想要一行代码:

代码语言:javascript
复制
whatyouwant <- setNames(as.character(dd$name), dd$crit)
票数 79
EN

Stack Overflow用户

发布于 2013-10-09 15:13:12

您可以从dd$name创建一个矢量,并使用names()添加名称,但使用structure()可以一步完成所有操作

代码语言:javascript
复制
whatiwant <- structure(as.character(dd$name), names = as.character(dd$crit))
票数 24
EN

Stack Overflow用户

发布于 2020-04-28 19:00:50

下面是一个非常通用、简单、整洁的方法:

代码语言:javascript
复制
library(dplyr)

iris %>%
  pull(Sepal.Length, Species)

第一个参数是值,第二个参数是名称。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19265172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档