【发布时间】:2019-07-03 02:44:10
【问题描述】:
所以我从 csv 文件上传了我的数据。我尝试使用stringsAsFactors = FALSE 上传它,但仍然出现错误。前 13 列是字符串,其余列(从 14 列开始)都是数字。核心代码如下:
library("readxl")
# Read data with facotr is False
data <- read.csv("PFR csvData.csv",stringsAsFactors = FALSE)
# Convert all numeric rows to numeric
data[,14:length(colnames(data))]<- as.numeric(as.character(unlist(data[,14:length(colnames(data))])))
# Convert all string rows to characters
data[,1:13]<- as.character(unlist(data[,1:13]))
当我通过sapply(data, class) 检查每一列的类时,我得到:
Rk Player Pos Age Date Lg Tm
"character" "character" "character" "character" "character" "character" "character"
H.A Opp Result G. Week Day Receiving_Tgt
"character" "character" "character" "character" "character" "character" "numeric"
Receiving_Rec Receiving_Yds Receiving_Y.R Receiving_TD Receiving_Ctch. Receiving_Y.Tgt Receiving_PPR
"numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
Passing_Cmp Passing_Att Passing_Cmp. Passing_Yds Passing_TD Passing_Int Passing_Rate
"numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
Passing_Sk Passing_Sk_Yds Passing_Y.A Passing_AY.A Passing_PPR Rushing_Att Rushing_Yds
"numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
Rushing_Y.A Rushing_TD Rushing_Half_PPR Total_Half_PPR
"numeric" "numeric" "numeric" "numeric"
我还通过apply(data, 2, function(x) any(is.na(x)))检查了NAs并获得:
Rk Player Pos Age Date Lg Tm
FALSE FALSE FALSE FALSE FALSE FALSE FALSE
H.A Opp Result G. Week Day Receiving_Tgt
FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Receiving_Rec Receiving_Yds Receiving_Y.R Receiving_TD Receiving_Ctch. Receiving_Y.Tgt Receiving_PPR
FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Passing_Cmp Passing_Att Passing_Cmp. Passing_Yds Passing_TD Passing_Int Passing_Rate
FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Passing_Sk Passing_Sk_Yds Passing_Y.A Passing_AY.A Passing_PPR Rushing_Att Rushing_Yds
FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Rushing_Y.A Rushing_TD Rushing_Half_PPR Total_Half_PPR
FALSE FALSE FALSE FALSE
所以在这一点上,我认为我上传了没有因子的数据,通过强制它们的类型确保所有列都不是因子,并通过查看每列的类来仔细检查。我还确保没有 NAs
但是,当我使用我的聚合函数时,我收到与因素有关的错误:
aggregate(data$Player, by = list(data$Total_Half_PPR), FUN = sum)
Error in Summary.factor(291L, na.rm = FALSE) :
‘sum’ not meaningful for factors
我不知道还能做什么。任何帮助表示赞赏!
【问题讨论】: