如何强制列表对象输入'double'

Lis*_*Ann 68 r

代码:

a <- structure(list(`X$Days` = c("10", "38", "66", "101", "129", "185", "283", 
                                 "374")), .Names = "X$Days")
Run Code Online (Sandbox Code Playgroud)

然后a就像

$`X$Days`
[1] "10"  "38"  "66"  "101" "129" "185" "283" "374"
Run Code Online (Sandbox Code Playgroud)

我想强制a使用一组数值,但是强制函数会返回给我

Error: (list) object cannot be coerced to type 'double'
Run Code Online (Sandbox Code Playgroud)

谢谢,

Ben*_*nes 121

如果要将所有元素转换a为单个数字向量并且length(a)大于1(确定,即使它的长度为1),您可以unlist先对象然后转换.

as.numeric(unlist(a))
# [1]  10  38  66 101 129 185 283 374
Run Code Online (Sandbox Code Playgroud)

请记住,这里没有任何质量控制.还有X$Days一个奇怪的名字.


Mat*_*rde 31

如果您的列表是需要转换为数字的多个元素,则可以实现此目的lapply(a, as.numeric).


USE*_*R_1 7

您还可以使用列表子集来选择要转换的元素.如果您的列表包含多个元素,那将非常有用.

as.numeric(a[[1]])