tidyverse-删除嵌套列/列表中的列

tidyverse-删除嵌套列/列表中的列,r,nested,tidyverse,R,Nested,Tidyverse,我有以下数据: (注意:我在tidyverse中使用的是当前github版本的dplyr,它提供了一些新的实验功能,如concure——我在下面使用的,但我认为这与我的问题无关) 库(tidyverse) 图书馆(corrr) dat噢,天哪,这很简单: cor_dat <- dat %>% group_by(grp) %>% condense(cor = correlate(cur_data())) %>% mutate(cor = list(cor[,-1

我有以下数据:

(注意:我在tidyverse中使用的是当前github版本的dplyr,它提供了一些新的实验功能,如
concure
——我在下面使用的,但我认为这与我的问题无关)

库(tidyverse)
图书馆(corrr)

dat噢,天哪,这很简单:

cor_dat <- dat %>%
  group_by(grp) %>%
  condense(cor = correlate(cur_data())) %>%
  mutate(cor = list(cor[,-1]))
cor_dat%
分组依据(grp)%>%
压缩(cor=correlate(cur_data())%>%
变异(cor=list(cor[,-1]))

通过尝试和错误到达那里。尽管这只适用于列位置,而不适用于名称。

如果我们删除group属性,@r2evans的建议将有效

library(dplyr)
library(purrr)
cor_dat %>%
     ungroup %>%
     mutate(cor = map(cor, ~ select(.x, -rowname)))
# A tibble: 4 x 2
#    grp cor             
#  <int> <list>          
#1     1 <tibble [6 × 6]>
#2     2 <tibble [6 × 6]>
#3     3 <tibble [6 × 6]>
#4     4 <tibble [6 × 6]>
错误:
mutate()
参数
cor
出错。 ℹ
cor
map(cor,~select(.x,-rowname))
。 ℹ 错误发生在第1行。 ✖ 没有适用于“字符”类对象的“选择”方法 运行
rlang::last_error()
查看错误发生的位置

如果我们提取为列,这与相同的行为是一致的

cor_dat$cor %>% 
           map(~ .x %>% select(-rowname))

或者,如果我们想缩短它,可以在
压缩
本身内完成,因为
关联
根据文档添加了一个
行名

dat %>%
  group_by(grp) %>%
  condense(cor = correlate(cur_data()) %>%
                              select(-rowname))
# A tibble: 4 x 2
# Rowwise:  grp
#    grp cor             
#  <int> <list>          
#1     1 <tibble [6 × 6]>
#2     2 <tibble [6 × 6]>
#3     3 <tibble [6 × 6]>
#4     4 <tibble [6 × 6]>
dat%>%
分组依据(grp)%>%
压缩(cor=correlate(cur_data())%>%
选择(-rowname))
#一个tibble:4x2
#行方式:grp
#玻璃钢
#             
#1     1 
#2     2 
#3     3 
#4     4 

purrr::map_df(colname,~select(.x,-rowname))
不起作用<代码>as_mapper(.f,…)中的错误:未找到对象“colname”
我认为@r2evans的意思是“colname”作为您填写实际列名的替代,尽管我认为它实际上应该是您的数据框抱歉,编辑了我的帖子。但是名字也不起作用。
cor_dat %>% 
    mutate(cor = map(cor, ~ select(.x, -rowname)))   
cor_dat$cor %>% 
           map(~ .x %>% select(-rowname))
dat %>%
  group_by(grp) %>%
  condense(cor = correlate(cur_data()) %>%
                              select(-rowname))
# A tibble: 4 x 2
# Rowwise:  grp
#    grp cor             
#  <int> <list>          
#1     1 <tibble [6 × 6]>
#2     2 <tibble [6 × 6]>
#3     3 <tibble [6 × 6]>
#4     4 <tibble [6 × 6]>