我需要将一个多行两列的data.frame转换为一个命名的字符向量。我的data.frame应该是这样的:
dd = data.frame(crit = c("a","b","c","d"),
name = c("Alpha", "Beta", "Caesar", "Doris")
)我真正需要的是:
whatiwant = c("a" = "Alpha",
"b" = "Beta",
"c" = "Caesar",
"d" = "Doris")发布于 2013-10-09 15:12:51
使用names函数:
whatyouwant <- as.character(dd$name)
names(whatyouwant) <- dd$critas.character是必需的,因为data.frame和read.table使用默认设置将字符转换为因子。
如果你想要一行代码:
whatyouwant <- setNames(as.character(dd$name), dd$crit)发布于 2013-10-09 15:13:12
您可以从dd$name创建一个矢量,并使用names()添加名称,但使用structure()可以一步完成所有操作
whatiwant <- structure(as.character(dd$name), names = as.character(dd$crit))发布于 2020-04-28 19:00:50
下面是一个非常通用、简单、整洁的方法:
library(dplyr)
iris %>%
pull(Sepal.Length, Species)第一个参数是值,第二个参数是名称。
https://stackoverflow.com/questions/19265172
复制相似问题