我有一个300万行,500列数据集。尽管列是数字的,但从csv文件导入时,所有列都被视为因子,而不是数字。我试图用命令
将它们转换回数字wikifixedn<-as.numeric(as.character(wikifixed))
wikifixed是数据帧。
这是永远的...我的MacBook Pro,16GB内存和2.3GHz酷睿i7已经在这里搅拌了一个多小时。我可以在某个地方看到我在这个过程中有多远,或者过程是否正在进行中?这是处理对话问题的另一种更快的方法吗?
BTW:我尝试在导入csv文件时强制使用
将列视为数字> wikifixed<-read.csv('~/OneDrive/kredible/finaldata/wutao/wikipediausers.csv', header = TRUE, stringsAsFactors=F)
然而,在检查时我得到了
> is.numeric(wikifixed)
[1] FALSE
答案 0 :(得分:1)
见这里
https://stat.ethz.ch/R-manual/R-devel/library/utils/html/read.table.html
你可能应该为colClasses创建一个向量
read.table(file, header = FALSE, sep = "", quote = "\"'",
dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),
row.names, col.names, as.is = !stringsAsFactors,
na.strings = "NA", colClasses = NA, nrows = -1,
skip = 0, check.names = TRUE, fill = !blank.lines.skip,
strip.white = FALSE, blank.lines.skip = TRUE,
comment.char = "#",
allowEscapes = FALSE, flush = FALSE,
stringsAsFactors = default.stringsAsFactors(),
fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)
stringsAsFactors
逻辑:字符向量应该转换为因子吗?请注意,这被as.is和colClasses覆盖,两者都允许更精细的控制。
colClasses
字符。要为列假定的类向量。根据需要进行回收,或者如果命名了字符向量,则未指定的值将被视为NA。
可能的值是NA(默认情况下,使用type.convert时),&#34; NULL&#34; (当跳过列时),其中一个原子向量类(逻辑,整数,数字,复数,字符,原始)或&#34;因子&#34;,&#34;日期&#34;或&#34; POSIXct&#34;。否则,需要有一个as方法(来自包方法)来转换来自&#34;字符&#34;到指定的正式班级。
请注意,colClasses是按列(而不是每个变量)指定的,因此包括行名称列(如果有)。
如果你想转到data.table,也请看这里,因为你可能遇到更多问题。
fread in R imports a large .csv file as a data frame with one row
require(data.table)
fread("pre2012_alldatapoints.csv", sep = ",", header= TRUE)
并阅读
中的data.table常见问题解答