0

私は ff パッケージを数週間使用しており、これまでのところうまく機能していますが、今日、数値であるべき変数が因子として読み取られていることに気付きました。データには約90万行と800列があるため、すべての列が必要なクラスを取得するように制御するのは簡単ではありません...

matff <- read.csv2.ffdf(file = name,encoding = "UTF-8",next.rows=150000,colClasses=NA)

これがなぜ起こっているのか、そしてそれを修正する方法についてのアイデアを知りたいです。

ありがとう。

4

2 に答える 2

1

これで動作するはずです:

# matff <- data.frame(Col=c('a','b','c'),Mix1=c('a','1.2','c'),Mix2=c(1.1,2.1,3),Num1=c('1.2','2.3','3.4'),Num2=c('1,2','2,3','3,4')) # Data example

func <- function(x) {
 if (class(x) != 'numeric') {
  x <- levels(x)[x]
  if (length(grep('[a-zA-Z]',x,invert=T)) == length(x)) { x <- as.real(gsub(',','\\.',x)) }
  else { x <- factor(x) }
 }
 x
}

for (i in 1:ncol(matff)) {
 matff[,i] <- func(matff[,i])
}
于 2013-02-18T13:18:23.513 に答える