微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将充满双精度的列表快速转换为整数?

如何解决如何将充满双精度的列表快速转换为整数?

令人惊讶的是,我通过自己的研究没有找到任何令人满意的答案。

假设我有以下列表:

bc <- list(row0 = 1,row1 = c(1,1),row2 = c(1L,2,row3 = c(1,3,1))

我想将该列表中的所有数字转换为整数。我的第一个简单方法是在每个数字后放置一个“L”。这种方法可行,但非常不方便。

第二,我试过了

as.integer(bc[[1]])

但这不会将列表中的变量保存为整数。

第三,我尝试了另一个线程中建议的类似内容

as.integer(unlist(bc))

这确实“取消列出列表”并将数字转换为整数,但是,当我想再次使用列表名称恢复与以前完全相同的列表时,我现在卡住了。

必须有比这更快的方法吗?

非常感谢!

解决方法

map() 中的 purrr 函数应该会有所帮助:

map(bc,as.integer)
# $row0
# [1] 1
# 
# $row1
# [1] 1 1
# 
# $row2
# [1] 1 2 1
# 
# $row3
# [1] 1 3 3 1

str(purrr::map(bc,as.integer))
# List of 4
#  $ row0: int 1
#  $ row1: int [1:2] 1 1
#  $ row2: int [1:3] 1 2 1
#  $ row3: int [1:4] 1 3 3 1

如果您更喜欢基本的 R 类情绪,则可以使用 lapply(bc,as.integer) 获得相同的结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。