1. Error : cannot allocate vector of size X Gb
## 1.
gc()
##2.
r = data.frame(a=rnorm(10,2,.5),b=rnorm(10,3,.5))
library(SOAR)
Sys.setenv(R_LOCAL_CACHE=”testsession”)
ls()
Store(r)
ls()
mean(r[,1])
r$c = rnorm(10,4,.5)
ls()
2. line did not have elements
默认情况下,read.table 用 # 作为注释标识字符。如果碰到该字符(除了在被引用的字符串内),该行中随后的内容将会被忽略。只含有空白和注释的行被当作空白行。如果确认数据文件中没有注释内容,用
read.table(".csv",header=TRUE,sep=",",comment.char = "") ##h会减少行数
fread(".csv",header=TRUE,sep=",", fill=TRUE, na.strings="",) %>%filter(col!="NA")##最好用
3. 特殊值
R中的无定义数用NaN表示,即“Not a Number(非数)”。
NA是一个长度为1的逻辑常数,表示缺失值,即“Missing value”,是“not available”的缩写
R中的无穷大用Inf表示(即Infinity,无穷大),负无穷表示为-Inf。
R语言中,NA代表位置上的值为空,NULL代表连位置都没有,变量为空,其长度为0,表明“空无一物”
NA与NULL的差别还是非常明显的。用一个比喻来讲,NA是已经挖好了一些坑,只是里面没有萝卜而已,这就是所谓的“缺失值”。而NULL则指的是“压根连坑都没有”。一个元素值全为NA的向量,它的长度是存在的,就等于元素的个数。而如果把一个向量的所有元素的值都设为NULL,这个向量就变成了“空值”,其长度为0,表明“空无一物”。
data <- data[complete.cases(data[,5:6]),]#删除第五六列有空值的行
data <- na.omit(data)#删除有空值的行
drop_na(df,X1) # 去除X1列的NA
在读入的时候,如果是read.csv的话,可以设置na.strings参数,na.strings="",即可将其变成NA了