似乎R中的map函数的自然深度不是人们所期望的。
代表:
data = list(
a =list(
'1' <- c(1, 2),
'2' <- c(3,4)
),
b = list(
'3' <- c(5,6),
'4' <- c(7,8)
)
)
我想将列表名称大写并打印出来,但这不起作用。
map(data, ~str_to_upper(names(.x)))
相反,我必须这样做:
map_depth(data,.depth = 0, ~str_to_upper(names(.x)))
预先感谢您的帮助。
答案 0 :(得分:2)
https://sp.foo.net/sites/spdsdfrn/_api/web/GetFolderByServerRelativeUrl('/sites/spdsdfrn/Shared Documents/abc/2019')/Folders
的输入是基础列表,第一次迭代是
map
其中没有名称,因此失败。
通过时
data[[1]]
#[[1]]
#[1] 1 2
#[[2]]
#[1] 3 4
第一次迭代的输入是
map_depth(data,.depth = 0, ~str_to_upper(names(.x)))
具有名称,因此将其打印出来。
您可以直接使用
data[1]
#$a
#$a[[1]]
#[1] 1 2
#$a[[2]]
#[1] 3 4
或在基数R
中stringr::str_to_upper(names(data))
#[1] "A" "B"