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)
我的错是什么?
你可以尝试strip.white=TRUE在read.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)