複数行2列を変換する必要があります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")
names
関数を使用します。
whatyouwant <- as.character(dd$name)
names(whatyouwant) <- dd$crit
as.character
とdata.frame
は、文字をデフォルト設定の要素に変換するため、read.table
が必要です。
ワンライナーが必要な場合:
whatyouwant <- setNames(as.character(dd$name), dd$crit)
_dd$name
_からベクトルを作成し、names()
を使用して名前を追加できますが、structure()
を使用すると、すべてを1つのステップで実行できます。
_whatiwant <- structure(as.character(dd$name), names = as.character(dd$crit))
_
種類については、split
とunlist
を試してください。
unlist(split(as.character(dd$name), dd$crit))
# a b c d
# "Alpha" "Beta" "Caesar" "Doris"
これにも使用できます。
tibble::deframe()