我无法将列表中的2个数据帧的列转换为数字。现在,两个数据帧都有2列由因子组成。我想将它们转换为数字,以便我可以对它们进行数学运算。以下是示例代码:
library(XML)
bal <- "http://www.baseball-reference.com/teams/BAL/2014-schedule-scores.shtml"
bos <- "http://www.baseball-reference.com/teams/BOS/2014-schedule-scores.shtml"
mylist <- list(bal, bos)
a <- lapply(mylist, readHTMLTable)
b <- lapply(a, function(x) x[["team_schedule"]][, c("R", "RA")])
c <- as.numeric(as.character(b))
当我运行此代码时,我得到:
> c
[1] NA NA
> str(c)
num [1:2] NA NA
这是b的结构:
> str(b)
List of 2
$ :'data.frame': 165 obs. of 2 variables:
..$ R : Factor w/ 13 levels "","0","10","11",..: 6 6 7 8 10 7 6 5 9 2 ...
..$ RA: Factor w/ 13 levels "","0","1","10",..: 3 9 7 4 10 3 7 8 7 6 ...
$ :'data.frame': 166 obs. of 2 variables:
..$ R : Factor w/ 10 levels "","0","1","2",..: 3 8 6 4 8 2 7 9 6 3 ...
..$ RA: Factor w/ 13 levels "","1","10","14",..: 5 5 6 9 10 7 2 3 5 7 ...
如何将因子转换为数值?
答案 0 :(得分:1)
你需要使用lapply。在“b”上执行str
str(b)
这将告诉您有2个data.frames中的2个的列表。
所以你需要使用lapply和sapply来保存数据结构
lapply(b, function(x) sapply(x, function(x) as.numeric(as.character(x))))
您的因子中有D / N,它将转换为NA以及列表条目 这是空白/空白