Csv
如何將此 R CSV 數據聲明為數字?
我在 Vim csv.vim 外掛的 CSV 文件中的欄位周圍添加了空格。現在,我在將列類聲明為數字(
num
等)時遇到了困難。那裡有負值也會導致以下列中的問題數據可以有空欄位。數據data.csv
Test, test2, test3 , 1 , 1 10.8, -1 , 1 1.1 , 2 , 2
程式碼
library('methods') DF <- read.csv("/home/masi/Data/data.csv", header = T, sep = ",", colClasses=c('num','num')) DF
輸出
Error in methods::as(data[[i]], colClasses[i]) : no method or default for coercing “character” to “num” Calls: read.csv -> read.table -> <Anonymous> Execution halted
- 執行時轉換為數字失敗
colClasses=c('num','num')
。- 第 3 列中的輸出被認為是
NA
因為第二列中有一個減號 (-1
)。R:3.3.3
AFAIK
num
不是有效的原子向量類R
:可能的值是 NA(預設值,當使用 type.convert 時)、“NULL”(當列被跳過時)、**原子向量類之一(邏輯、整數、數字、複雜、字元、原始)**或“因子"、“日期” 或 “POSIXct”。否則需要有一個 as 方法(來自包方法)用於從“字元”轉換為指定的正式類。
如果您將其替換為以下程式碼,您的程式碼應該可以工作
numeric
:> DF <- read.csv("data.csv", header = T, sep = ",", colClasses=c('num','num'))Error in methods::as(data[[i]], colClasses[i]) : no method or default for coercing “character” to “num”
然而
> DF <- read.csv("data.csv", header = T, sep = ",", colClasses=c('numeric','numeric')) > > DF Test test2 test3 1 NA 1 1 2 10.8 -1 1 3 1.1 2 2 >