如何修复:对象(列表)无法强制输入“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 中修复:较长物体的长度不是较短物体长度的倍数