首页 > 解决方案 > 将列表中的列从字符转换为数字

问题描述

我有一个包含两个数据集的列表,我想将每一列从字符转换为数字。

[[1]]
                 b                m
2 12194.0968074593 703.359790781974

[[2]]
                 b                m
2 49.2080763267713 30.9186232579308



> str(tidy_linear_regression)
List of 2
 $ :'data.frame':   1 obs. of  2 variables:
  ..$ b: chr "12194.0968074593"
  ..$ m: chr "703.359790781974"
 $ :'data.frame':   1 obs. of  2 variables:
  ..$ b: chr "49.2080763267713"
  ..$ m: chr "30.9186232579308"

我无法想出一个最终得到一个列表的代码。我尝试了以下代码,结果始终是一个data.frame:

tidy_linear_regression_new <- 
  lapply(tidy_linear_regression, 
         function(x) as.numeric(as.character(x)))
tidy_linear_regression_new<-
  sapply(tidy_linear_regression, 
         as.character)

标签: r

解决方案


由于您在数据框中有多个列,因此您需要lapplylapply-

tidy_linear_regression <- lapply(tidy_linear_regression, function(x) {
  x[] <- lapply(x, as.numeric)
  x
})

推荐阅读