首先,這個問題非常接近,但不是我需要的。請允許我解釋一下:
我正在處理一系列資料,這些資料要求我根據使用小數位作為分隔符的內部標準進行標記。下面是一個通用示例:
ItemA 1.6
ItemB 1.7
ItemB 1.8
ItemB 1.9
ItemB 1.10
現在,當此資料匯出為 csv 檔案時,1.10將更改為1.1. 我們已經使用1.1了其他東西,并且與上面的鏈接問題不同,此標記是在程式中完成的。為處理而讀入的資料不包含數字。由于令人惱火的原因,輸出必須是 csv,我無法更改標記的完成方式。輸出的 csv 檔案到別處供其他人進一步處理。似乎更改值的類沒有任何效果。
從我的評論添加到第一個答案,以澄清:我嘗試在 R 中標記為 1.10,它變為 1.1,與我的其他 1.1 混合。為避免這種情況,我將它們設為 as.character('1.10') 但這仍然對匯出的 csv 檔案沒有幫助。絕不會讀入包含“1.10”的csv。
有什么方法可以讓 r 將其寫入1.10csv?我不在乎它的參與程度或“笨拙”。
uj5u.com熱心網友回復:
您可以colClasses在read.csv.
讓我們做一個可重現的例子:
df <- data.frame(col1 = c("ItemA", "ItemB", "ItemB", "ItemB", "ItemB"),
col2 = c("1.6", "1.7", "1.8", "1.9", "1.10"))
write.csv(df, file = "my.csv", quote = FALSE)
所以現在 my.csv 看起來像這樣:
,col1,col2
1,ItemA,1.6
2,ItemB,1.7
3,ItemB,1.8
4,ItemB,1.9
5,ItemB,1.10
我們可以通過執行以下操作重現您的問題:
read.csv("my.csv", row.names = 1)
#> col1 col2
#> 1 ItemA 1.6
#> 2 ItemB 1.7
#> 3 ItemB 1.8
#> 4 ItemB 1.9
#> 5 ItemB 1.1
但是如果我們指定colClasses,問題就解決了:
read.csv("my.csv", row.names = 1, colClasses = c("character", "character"))
#> col1 col2
#> 1 ItemA 1.6
#> 2 ItemB 1.7
#> 3 ItemB 1.8
#> 4 ItemB 1.9
#> 5 ItemB 1.10
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/428815.html
