导致计算错误的数据集大小

时间:2013-02-03 19:52:57

标签: r error-handling dataset limit

我已从previous question I asked

修改了以下代码
Input_Data <- read.csv("http://dl.dropbox.com/u/58164604/Input_Data.csv", row.names=1, stringsAsFactors = FALSE)

TPop<-Input_Data[1]
TPopCount <- TPop[, 1]
TPopSum <- sum(TPopCount)

OACRaw<-Input_Data[,4:ncol(Input_Data)]
OACRawCount <-ncol(OACRaw)

OA_Percentage <- TPopCount/TPopSum * 100
Data_Per_Row <- OACRaw/matrix(rep(TPopCount, each=OACRawCount), ncol=OACRawCount, byrow=T)*100
Data_Index_Row <- Data_Per_Row/OA_Percentage * 100
names(Data_Per_Row) <- names(Data_Index_Row) <- names(OACRaw)

但是,当我尝试将其用于更大的数据集(186列和超过180,000行)时,会出现以下错误:

Error in FUN(left, right) : non-numeric argument to binary operator

但是,当相同的代码运行较小的数据集(46列和180,00行)时,它可以正常工作:

Input_Data <- read.csv("http://dl.dropbox.com/u/58164604/Input_Data.csv", row.names=1, stringsAsFactors = FALSE)

TPop<-Input_Data[1]
TPopCount <- TPop[, 1]
TPopSum <- sum(TPopCount)

OACRaw<-Input_Data[,4:50]
OACRawCount <-ncol(OACRaw)

OA_Percentage <- TPopCount/TPopSum * 100
Data_Per_Row <- OACRaw/matrix(rep(TPopCount, each=OACRawCount), ncol=OACRawCount, byrow=T)*100
Data_Index_Row <- Data_Per_Row/OA_Percentage * 100
names(Data_Per_Row) <- names(Data_Index_Row) <- names(OACRaw)

任何人都可以解释为什么会这样,以及如何让这段代码在更大的数据集上工作?感谢

1 个答案:

答案 0 :(得分:1)

您的OACRaw数据框中有一些奇怪的值。例如,在第184列第22行,该值是反引号字符:“`”。当你试图将它分开时,这是错误的原因。

第184列之后可能还有其他虚假值。

因此,错误不是由于数据的大小,而是因为当您只选择第一列时,会排除伪造的值。