2017-09-01 43 views
2

我需要存儲一個固定長度變量,該變量可能有一些前導零數位數(例如「00045」,「00657」,「56748」) 。存儲一個以非固定數字0位開始的'數字'值

什麼類最適合保存變量以保持零位?

'數字'和'字符'給我的問題,特別是當數據庫被保存(csv格式),關閉,並重新讀入R.具體來說,我不明白爲什麼將變量保存爲字符失敗我。


編輯:

# original data 
df1 <- data.frame(x = c("00045", "00657", "56748"), stringsAsFactors = FALSE) 
str(df1) 
# 'data.frame': 3 obs. of 1 variable: 
# $ x: chr "00045" "00657" "56748" 
write.csv(df1, "temp.csv", row.names = FALSE) 

# no let's read, the str is not the same anymore 
df2 <- read.csv("temp.csv") 
str(df2) 
# 'data.frame': 3 obs. of 2 variables: 
# $ x: int 45 657 56748 
+5

向我們展示一些示例代碼,其中字符不起作用。他們應該。 –

+2

重新讀取文件時,它可能會自動將該變量轉換爲數字,您是否指定了col類? – timfaber

回答

0

當您閱讀簡歷,你可以指定列類:

read.csv(yourCsvPath,colClasses =classVector) 

使用參數colClasses指定列必須被理解爲性格:

將爲第e欄。必要時回收,或者如果字符向量被命名, 未指定的值將被視爲NA。

可能的值是NA(默認地,當使用type.convert),「NULL」(當柱被跳過),原子矢量類 (邏輯,整數,數字,複雜,字符,生之一)或「因子」, 「日期」或「POSIXct」。否則,需要有一個方法(從 包方法)從「字符」轉換爲指定的 正式類。 請注意,colClasses是按列(而不是每個變量)指定的,因此包括行名稱列(如果有)。

讓我知道如果這項工作,如果不是我們需要看你的代碼!

+1

非常感謝。重新讀取文件時指定類矢量解決了問題。 –

相關問題