簡體   English   中英

創建一個函數來遍歷 R 中大列表中的 tibble 元素

[英]Creating a function to iterate over tibble elements within a large list in R

我正在嘗試創建一個函數來自動化我在將多個數據集組合成一個 xts 之前需要做的一些基本格式。 我可以批量讀取文件並創建一個大列表。 但是我很難創建一個函數來迭代該列表。 當我將單個文件讀入 df 時,我一直在運行以下命令:

df<-df[!(duplicated(df$DateTime)),] dfx<-xts(df[,-1], order.by = as.POSIXct(df$DateTime, format="%d-%b-%y %H:%M:%S"))

然后我對所有 'dfx' 對象做了一個 merge.xts。 我對數據的一個問題是 DateTime 並不總是在文件之間匹配,並且上述方法給了我一個帶有 NA 的大 xts,這是我更喜歡另一種類型的合並/rbind。 我想創建一個函數來一遍又一遍地執行此操作,尤其是因為將每個文件讀入單獨的數據幀然后合並非常麻煩,因為我必須合並 10 個以上的文件。 我所有的嘗試都沒有成功,現在我只是被卡住了。 :/ 任何幫助,將不勝感激!

如果它是一個list ,我們可以使用lapply循環遍歷list並使用匿名函數調用來應用該函數。

lst2 <- lapply(lst1, function(df) {
     df<-df[!(duplicated(df$DateTime)),]
     xts(df[,-1], order.by = as.POSIXct(df$DateTime, format="%d-%b-%y %H:%M:%S")) 
  })

然后使用Reduce進行merge

Reduce(merge, lst2)

暫無
暫無

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

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