如何强制列表对象键入“双”
代码:
a <- structure(list(`X$Days` = c("10", "38", "66", "101", "129", "185", "283", "374")), .Names = "X$Days")
然后a
就像
$`X$Days` [1] "10" "38" "66" "101" "129" "185" "283" "374"
我想强制a
数值的数组,但强制函数返回我
Error: (list) object cannot be coerced to type 'double'
谢谢,
如果要将a
所有元素转换为单个数字向量,并且length(a)
大于1(即使长度为1,那么也可以),您可以unlist
对象unlist
,然后转换。
as.numeric(unlist(a)) # [1] 10 38 66 101 129 185 283 374
请记住,这里没有任何质量控制。 另外, X$Days
是一个强大的奇怪的名字。
如果您的列表需要转换为数字的多个元素,可以用lapply(a, as.numeric)
来实现。
您也可以使用列表子集来select要转换的元素。 如果你的列表有一个以上的元素,这将是有用的。
as.numeric(a[[1]])
有些数据有问题。 考虑:
as.double(as.character("2.e")) # This results in 2
另一个scheme
get_numbers <- function(X) { X[toupper(X) != tolower(X)] <- NA return(as.double(as.character(X))) }