[英]Append a vector as a row in a CSV file
考慮以下數據 - 只是虛擬數據,自動創建實際數據:
features <- numeric(0)
features <- c(features, 1, 2, 3, 4, 5, 6)
features2 <- numeric(0)
features2 <- c(features2, 1, 2, 3, 4, 5, 6)
featureVectors <- list()
featureVectors[["file1"]] <- features
featureVectors[["file2"]] <- features2
resultMatrix <- do.call(rbind, featureVectors)
colnames(resultMatrix) <- c("SPEC_MEAN", "SPEC_SD", "SPEC_MODE", "AUTOC_MEAN", "AUTOC_SD", "ZC_MEAN")
這會產生如下輸出:
SPEC_MEAN SPEC_SD SPEC_MODE AUTOC_MEAN AUTOC_SD ZC_MEAN
file1 1 2 3 4 5 6
file2 1 2 3 4 5 6
我可以通過調用write.csv(resultMatrix, file="out.csv")
將其寫入CSV文件。
由於結果文件(當前)剛剛創建,我想在評估后立即將這些features
(即向量)寫入CSV文件。
所以我以為我會使用write.csv
並append
,但該選項不適用於該方法。 然后我想我可以使用write.table
,但有兩個問題:
write.table
不會縮進第一個空列名,從而使我的第一行向左移動一行。
數據以某種方式錯誤地轉置。 見下面的例子。
另外,調用這些命令......
write.table(resultMatrix, file="data-appended.csv", sep=",")
write.table(features, file="data-appended.csv", sep=",", append=TRUE, col.names=FALSE)
...產生這個結果:
"SPEC_MEAN","SPEC_SD","SPEC_MODE","AUTOC_MEAN","AUTOC_SD","ZC_MEAN"
"file1",1,2,3,4,5,6
"file2",1,2,3,4,5,6
"1",1
"2",2
"3",3
"4",4
"5",5
"6",6
......這不是我想要的。 那么,如何將features
向量的內容(包括file
名)附加到現有的CSV文件中?
兩次調整將解決您的兩個問題。
要保持列標題的縮進,請使用不直觀(但記錄在案)!參數col.names=NA
:
write.table(resultMatrix, file = "data-appended.csv", sep = ",", col.names = NA)
寫features
(載體)作為行,而不是一列,轉置,並將其傳遞到前轉換為矩陣write.table()
FF <- as.matrix(t(features)) write.table(FF, file = "data-appended.csv", sep = ",", col.names = FALSE, append=TRUE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.