Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在TIBLE中,通过改变新的列表列从命名列表中提取名称_R_Dplyr_Purrr_Tibble - Fatal编程技术网

R 在TIBLE中,通过改变新的列表列从命名列表中提取名称

R 在TIBLE中,通过改变新的列表列从命名列表中提取名称,r,dplyr,purrr,tibble,R,Dplyr,Purrr,Tibble,我有一个TIBLE列表列。其中一个(我们称之为infocolumn)包含命名列表。对于TIBLE的每一行,我想修改一个新的列表列,该列将包含一个向量(嵌套)。该向量的元素将对应于相邻“info”列表列中命名列表的名称 例子 我的歌我的歌 ###tibble:4 x 2 ##变量名称信息 ## ##1艺术品 ##2体育 ##3独立性 ##4性别 期望输出 var_name info name_of 1件艺术品#c(“文森特·梵高”、“莱昂纳多·达芬奇”、

我有一个TIBLE列表列。其中一个(我们称之为
info
column)包含命名列表。对于TIBLE的每一行,我想修改一个新的列表列,该列将包含一个向量(嵌套)。该向量的元素将对应于相邻“
info
”列表列中命名列表的名称

例子
我的歌我的歌
###tibble:4 x 2
##变量名称信息
##                     
##1艺术品
##2体育
##3独立性
##4性别
期望输出
var_name info name_of
1件艺术品#c(“文森特·梵高”、“莱昂纳多·达芬奇”、“约翰尼斯·弗米尔”、“桑德罗·波提切利”、“格兰特·伍德”)
2体育类(“似乎无效”)
3独立#c(177618181956)
4性别(“男性”、“女性”)
我的尝试 我想改变一个新的列表列,它检查
info
列。如果
info
不是
NULL
,则新列表列将包含一个向量,该向量包含嵌套在
info
中的列表名称;否则,在mutated list列中放入一个字符串
“似乎为空”

库(dplyr)
图书馆(purrr)
我的可存储%>%
mutate(names\u of=map\u chr(info,~ifelse(is.null(.x),“似乎\u null”,names(.x)))
###tibble:4 x 3
##变量名称信息名称
##                                 
##1艺术作品文森特·梵高
##2体育似乎是空的
##3独立1776
##4性别男性
不幸的是,这只返回
info
中列表中的名字

我还尝试使用
pmap()
,如中所示,但不起作用:

我的列表%>%
mutate(names_of=map_chr(info、~ifelse(is.null(.x)、list(“似乎为null”)、pmap(.x、names(.x)[c(…)]))
错误:
mutate()
无效下标 键入“列表”
我输入的
名称是
map\u chr(…)


我将感谢任何帮助

按如下方式逐行执行计算:

res <- my_tibble %>%
   rowwise %>%
   mutate(names_of = list(if (is.null(info)) "seems_null" else names(info))) %>%
   ungroup
res%
行%>%
mutate(names\u of=list(如果(is.null(info))“似乎\u null”或者names(info)))%>%
解组
给予:

> res
# A tibble: 4 x 3
  var_name     info             names_of 
  <chr>        <list>           <list>   
1 artworks     <named list [5]> <chr [5]>
2 sports       <NULL>           <chr [1]>
3 independence <named list [3]> <chr [3]>
4 gender       <named list [2]> <chr [2]>
>res
#一个tibble:4x3
变量名称信息名称
1艺术品
2体育
3独立性
4性别

啊!很好。这并不是说它太关键,但您是否看到了一种“自然”将
names\u of
变成
dbl
向量而不是第3行的
chr
的方法?在回答中,将
names(info)
替换为
type.convert(names(info))