取消列出而不创建小数

Tje*_*ebo 4 r

我没有找到一个骗子,虽然这肯定以前有人问过:/

如何在unlist没有小数的元素中创建数字列表(甚至向量)而不在那些首先没有小数的元素中创建小数(双关语半意图)。

unlist(list(1, 1.11))
#> [1] 1.00 1.11
Run Code Online (Sandbox Code Playgroud)

A5C*_*2T1 5

formatC/prettyNum也适用于此:

formatC(unlist(list(1, 1.11)))
## [1] "1"    "1.11"

prettyNum(unlist(list(1, 1.11)))
## [1] "1"    "1.11"
Run Code Online (Sandbox Code Playgroud)

实际上,as.character似乎就足够了:

as.character(list(1, 1.11))
## [1] "1"    "1.11"
Run Code Online (Sandbox Code Playgroud)

尽管只有当list元素是单个值时,它才能按您的预期工作:

as.character(list(1, 1.11, c(2, 2.22), list(3, 3.33)))
## [1] "1"             "1.11"          "c(2, 2.22)"    "list(3, 3.33)"
Run Code Online (Sandbox Code Playgroud)

从帮助文件中as.character

对于列表和配对列表(包括语言对象,如调用),它单独解析元素,除了它提取长度为 1 的字符向量的第一个元素。

在这些情况下,使用as.character after unlist会更有意义:

as.character(unlist(list(1, 1.11, c(2, 2.22), list(3, 3.33))))
## [1] "1"    "1.11" "2"    "2.22" "3"    "3.33"
Run Code Online (Sandbox Code Playgroud)