1

以前の質問から以下のコードを変更しました。

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)

これがなぜなのか、このコードをより大きなデータセットで動作させる方法を説明できる人はいますか? ありがとう

4

1 に答える 1

1

OACRawデータ フレームに奇妙な値がいくつかあります。たとえば、184 列目、22 行目の値はバックティック文字「`」です。それを分割しようとすると、エラーの原因になります。

184 番目の列の後に、他の偽の値がある可能性があります。

したがって、エラーはデータのサイズによるものではなく、最初の列のみを選択すると偽の値が除外されるという事実によるものです。

于 2013-02-03T22:14:41.750 に答える