为了节省空间,我从CSV文件中省略了零作为一种稀疏表示(所有数据都是数字):
table = read.csv(text = "
V1,V2,V3
0.3,1.2,1.5
0.5,,2.1
,.1,")
Run Code Online (Sandbox Code Playgroud)
这是我得到的:
> table
V1 V2 V3
1 0.3 1.2 1.5
2 0.5 NA 2.1
3 NA 0.1 NA
Run Code Online (Sandbox Code Playgroud)
我可以继续将NAs更改为0:
table[is.na(table)] = 0
V1 V2 V3
1: 0.3 1.2 1.5
2: 0.5 0.0 2.1
3: 0.0 0.1 0.0
Run Code Online (Sandbox Code Playgroud)
只是想知道在阅读时是否有一个单行班,最好是data.table的fread?:
table = fread("
V1,V2,V3
0.3,1.2,1.5
0.5,,2.1
,.1,")
Run Code Online (Sandbox Code Playgroud)
更多信息:我想避免的原因
table[is.na(table)] = 0
Run Code Online (Sandbox Code Playgroud)
是因为对我的数据的执行速度非常快,这个操作非常慢!(不确定原因.)我的数据集是336行x 3939列.(G.格洛腾迪克的定制课程答案很快,谢谢你的想法!)
设置一个将空字段视为0的自定义类.鉴于设置它只是一行read.csv语句来读取数据:
# test data
Lines <- "V1,V2,V3
0.3,1.2,1.5
0.5,,2.1
,.1,
"
# set up custom class
setClass("empty.is.0")
setAs("character", "empty.is.0",
function(from) replace(as.numeric(from), from == "", 0))
# one liner
read.csv(text = Lines, strip.white = TRUE, colClasses = "empty.is.0")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4444 次 |
| 最近记录: |