簡體   English   中英

為R中文件夾中的所有excel文件重命名同一列

[英]Rename the same column for all excel files in a folder in R

我在一個文件夾中有多個 excel 文件,所以我想清理文件夾中的每個文件,然后將所有 excel 文件附加在一起。 我想重命名所有 excel 文件的第一列,所以我使用以下代碼:

filelist<- list.files(pattern="*.xlsx")
DF <- lapply(filelist,function(i) {
Fu <- read_excel(i, sheet="XX")
colnames(Fu[[i]])[1] <- "Column 1"})

但是,我收到一條錯誤消息: colnames<- ( *tmp* , value = "SCENARIO_KEY") 中的錯誤:嘗試在小於二維的對象上設置“colnames”。 如何解決? 謝謝你。

lapply本身,我們可以重命名。 循環中的i是“filelist”的每個元素。 它不能用於子集 'Fu'。 相反,我們可以根據索引直接對列進行子集,因為“Fu”是每個list元素中的單個 data.frame

DF <- lapply(filelist,function(i) {
          Fu <- read_excel(i, sheet="XX")
          colnames(Fu)[1] <- "Column 1"
          Fu
     })

即使索引是正確的,當我們使用[[對 data.frame 進行子集化以獲取列時,它會返回一個vector並且vector有 dim 或 column names 屬性

mtcars[[1]]

是一個vector

並且執行分配會返回錯誤,因為 colnames 為NULL

colnames(mtcars[[1]])
#NULL

colnames(mtcars[[1]]) <- "new column"

colnames<- ( *tmp* , value = "new column") 中的錯誤:嘗試在小於二維的對象上設置“colnames”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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