簡體   English   中英

在CSV文件中將矢量作為行附加

[英]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.csvappend ,但該選項不適用於該方法。 然后我想我可以使用write.table ,但有兩個問題:

  1. write.table不會縮進第一個空列名,從而使我的第一行向左移動一行。

  2. 數據以某種方式錯誤地轉置。 見下面的例子。


我嘗試過的:

另外,調用這些命令......

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM