我所拥有的是一个数据框,其中包含一个因子字段,其中包含用作因子的一系列值。据我了解,它本质上是数值的箱。
我想要做的是将这些转换为数值,以便我可以在下游分析中使用它们。这个想法很简单。(a) 获取一个采用因子水平的函数,将其拆分为破折号并提取数值并计算平均值,以及 (b) 应用列的函数
data$Range.mean <- sapply(data$Range,
function(d) {
range <- as.matrix(strsplit(as.character(d), "-"))
(as.numeric(range[,1]) + as.numeric(range[,2]))/2
})
这给出了以下错误
Error in FUN(X[[1L]], ...) :
(list) object cannot be coerced to type 'double'
我试过lapply
了,没有什么区别。在寻找答案时,我发现了这个问题的其他一些解决方案,它本质上是将下限和上限分别提取到单个数组中,然后计算成对平均值当然是微不足道的。
不过,我想了解我在做什么/想错了。为什么我的代码会出错,这个错误到底意味着什么?