我正在尝试创建一个数据框,其中包含每列的列类型和唯一变量。
使用map(df, class) %>% bind_rows() %>% gather(key = col_name, value = col_class)
,我能够以所需的数据框格式获取列类型,但无法将唯一变量转换为数据框而不是列表。
以下是一个小数据框和代码,可以在列表中获取唯一变量,但无法在数据框中获取。理想情况下,我可以在一个(map)函数中完成这个任务,但如果必须将它们连接起来,也不是什么大问题。
df <- data.frame(v1 = c(1,2,3,2), v2 = c("a","a","b","b"))
library(tidyverse)
map(df, class) %>% bind_rows() %>% gather(key = col_name, value = col_class)
map(df, unique)
当我尝试在
map(df, unique)
上使用与map(df, class)
相同的方法时,我遇到了以下错误:Error: Argument 2 must be length 3, not 2
。这是预料之中的,但我不确定该如何解决这个问题。
bind_rows %>% spread(...)
,而应该使用map(df, class) %>% enframe() %>% unnest()
。 - M--enframe()
和unnest()
。我正在努力理解文档,但是相比于bind_rows() %>% gather()
,它们有什么好处呢? - alexb523