r - 创建一个函数来迭代 R 中一个大列表中的 tibble 元素
问题描述
我正在尝试创建一个函数来自动化一些在将多个数据集组合成 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+。我所有的尝试都没有成功,现在我被卡住了。:/ 任何帮助,将不胜感激!
解决方案
如果它是 a 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)
推荐阅读
- php - 使用 1 个表单插入多个订单
- debian - 如何解决 postfix Debian SMTP 标记为垃圾邮件?
- python - 如何使用 selenium 将 json 加载到文本框
- r - 在 data.table 中为向量中的每个值创建一列
- tensorflow - 自定义输入到 TensorFlow Hub 模块
- swift - 当成功没有价值时如何使用结果?
- c# - 有人能告诉我为什么我找到的文本可能不会被选中吗?
- python - 使用 find beautiful soup 使用 python 获取 href
- c++ - 如何在桌面应用程序中使用 WebRTC 进行语音聊天?
- aframe - 使用 A-Frame 日志组件时,如何防止日志再次显示在控制台上?