r - 一次更改列表名称
问题描述
我有列表,我希望他们的名字用小写字母。我不想使用 for 循环,我想使用purrr
> library(purrr)
> a <- list(Header = 1, Body = 1)
> b <- list(Header = 3, Body = 2)
> list(a, b) %>%
+ walk(~ {names(.x) <<- str_to_lower(names(.x))})
> a
$Header
[1] 1
$Body
[1] 1
> b
$Header
[1] 3
$Body
[1] 2
名称应该是"header"
和"body"
。为什么这不起作用?我明确使用了<<-
,<-
但名称没有改变。我能做些什么?
解决方案
library(purrr)
a <- list(Header = 1, Body = 1)
b <- list(Header = 3, Body = 2)
我猜您打算将全局变量更改为purrr::walk
. 这是使符号"<<-"
起作用的选择:
c("a", "b") %>%
walk(~ eval(parse(text = paste0("names(", ., ")<<-tolower(names(", ., "))"))))
此外,您可以使用assign(..., pos = 1)
来更改全局变量。
list(a = a, b = b) %>%
iwalk(~ assign(.y, set_names(.x, tolower(names(.x))), pos = 1))
查看
a
# $header
# [1] 1
#
# $body
# [1] 1
b
# $header
# [1] 3
#
# $body
# [1] 2
推荐阅读
- tensorflow - 是否可以在浏览器中缓存 tensorflow 模型,或监控下载进度?
- vbscript - 通过 VBSCRIPT 合并两个 CSV 文件时获取多个标题
- c++ - 非 const 左值引用类型 _normal_iterator<> 无法在 gcc 中绑定 _normal 迭代器类型的临时
- postgis - 在 Mac OS 中将 .osm 数据加载到 POSTGIS 时出错有人可以帮助我吗?
- ruby-on-rails - 当我在夹具定义中添加键/值列 (Hstore) 时,为什么 Minitest (Rails 4.2) 失败?
- python - some_list[:] = another_list 与 some_list = another_list 之间是否存在细微差别?
- javascript - 我的答题器游戏中的 localStorage 不起作用
- python - 迁移学习中的可变图像大小 (inception_resnet_v2)
- javascript - Next.js getInitialProps - 动态路由在生产中不起作用
- wordpress - 使用 wp insert 时创建自定义帖子名称