如何修复:对象(列表)无法强制输入“double”;


在 R 中您可能遇到的一个常见错误是:

 Error: (list) object cannot be coerced to type 'double'

当您尝试将多个元素的列表转换为数字元素而不首先使用unlist()函数时,会发生此错误。

本教程分享了可用于解决此错误的确切步骤。

如何重现错误

以下代码尝试将多个项目的列表转换为数值:

 #create list
x <- list(1:5, 6:9, 7)

#display list
x

[[1]]
[1] 1 2 3 4 5

[[2]]
[1] 6 7 8 9

[[3]]
[1] 7

#attempt to convert list to numeric
x_num <- as. numeric (x)

Error: (list) object cannot be coerced to type 'double'

由于我们没有使用unlist()函数,因此我们收到错误消息(list) Cannot be Forced to type “double”

如何修复错误

要将列表转换为数字,我们需要确保使用unlist()函数:

 #create list
x <- list(1:5, 6:9, 7)

#convert list to numeric
x_num <- as. numeric (unlist(x))

#display numeric values
x_num

[1] 1 2 3 4 5 6 7 8 9 7

我们可以使用class()函数来验证 x_num 确实是一个数值向量:

 #verify that x_num is numeric
class(x_num)

[1] "digital"

我们还可以检查原始列表和数字列表是否具有相同数量的元素:

 #display total number of elements in original list
sum(lengths(x))

[1] 10

#display total number of elements in numeric list
length(x_num)

[1] 10

我们看到两个长度是对应的。

其他资源

以下教程解释了如何解决 R 中的其他常见错误:

如何在 R 中修复:名称与以前的名称不匹配
如何在 R 中修复:对比只能应用于具有 2 个或更多级别的因子
如何在 R 中修复:较长物体的长度不是较短物体长度的倍数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注