我是一位新的R用戶。如何爲數據框中的每個列創建多個文本文件並保留第一列?
我有一個包含503列的excel文件。第一列表示組,而第二列直到最後一列是數字特徵。
Groups length width ellip ... nth_trait
AAA 2 1 7 1
BBB 4 5 6 0
CCC 1 6 3 5
我想創建文本文件在一個運行的每個特徵的文件名基於特質。代碼如下所示:
raw <- read_excel("raw_data.xlsx", sheet = 1)
raw_df <- as.data.frame(raw)
for (i in names(raw_df)) {
raw_file <- paste(i, ".txt", sep = "")
write.table(raw_df[[i]], raw_file, sep = "\t", quote = F, row.names = F, col.names = T, append = F)
}
輸出包含503個文本文件。每個文件只包含一個與數據框中每列對應的列。
但我期望每個文本文件的輸出必須由第一列(組名),然後性狀,如以下所列:
length.txt
Groups length
AAA 2
BBB 4
CCC 1
width.txt
Groups width
AAA 1
BBB 5
CCC 6
我應如何修改代碼?請幫助。
組似乎不是行名稱,而是一個單獨的列。如果這是真的,你可以用'raw_df [[c(1,i)]]'替換'raw_df [[i]]'。如果它確實存儲在行名稱中,則將'row.names = F'更改爲'row.names = TRUE'。 – lmo
是的,這些組在單獨的列。我編輯了這個問題。正如你所建議的那樣,我嘗試用raw_df [[c(1,i)]替換raw_df [[i]],但是我得到這個錯誤:.subset2(x,i,exact = exact)中的錯誤:no這樣的索引在第1級。 – lala
當我運行iris [[c(1,i)]]'其中'i = 5'時,它返回一個單獨的值,而不是一列。 –