![](/img/trans.png)
[英]Writing a new column in all excel files (and all sheets in an excel file) in a folder using R
[英]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.