如何读取NA值?

yrH*_*Jlb 1 csv r

file t.csv:

a ; b ; c ; d
1 ; 2 ; NA; 4
5 ; NA; 6 ; 7 
Run Code Online (Sandbox Code Playgroud)

我读了t.csv文件

> t <-  read.table("t.csv",header = T, sep = ";")
Run Code Online (Sandbox Code Playgroud)

我期待的是:

> str(t)
'data.frame':   2 obs. of  4 variables:
 $ a: num  1 5
 $ b: num  2 NA
 $ c: num  NA 6
 $ d: num  4 7
Run Code Online (Sandbox Code Playgroud)

我得到了什么

> str(t)
'data.frame':   2 obs. of  4 variables:
 $ a: num  1 5
 $ b: Factor w/ 2 levels " 2 "," NA": 1 2
 $ c: Factor w/ 2 levels " 6 "," NA": 2 1
 $ d: num  4 7
Run Code Online (Sandbox Code Playgroud)

我的错是什么?

akr*_*run 5

你可以尝试strip.white=TRUEread.table

dat <- read.table('t.csv', header=TRUE, sep=';', strip.white=TRUE)
str(dat)
# 'data.frame': 2 obs. of  4 variables:
#$ a: int  1 5
#$ b: int  2 NA
#$ c: int  NA 6
#$ d: int  4 7
Run Code Online (Sandbox Code Playgroud)

要获得numeric课程,可以使用colClasses

dat <- read.table('t.csv', header=TRUE, sep=';', 
       strip.white=TRUE, colClasses=rep('numeric',4))
str(dat)
#'data.frame':  2 obs. of  4 variables:
#$ a: num  1 5
#$ b: num  2 NA
#$ c: num  NA 6
#$ d: num  4 7
Run Code Online (Sandbox Code Playgroud)