创建一个函数来迭代 R 中大列表中的 tibble 元素
Creating a function to iterate over tibble elements within a large list in R
我正在尝试创建一个函数来自动化我在将多个数据集组合成 xts 之前需要执行的一些基本格式设置。我可以批量读取文件并创建一个大的 tibbles 列表。但是我很难创建一个函数来遍历该列表。当我将单个文件读入 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 并不总是在文件之间匹配,并且上述方法给了我一个带有 NAs 的大 xts,这是我更喜欢另一种类型的 merge/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)
我正在尝试创建一个函数来自动化我在将多个数据集组合成 xts 之前需要执行的一些基本格式设置。我可以批量读取文件并创建一个大的 tibbles 列表。但是我很难创建一个函数来遍历该列表。当我将单个文件读入 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 并不总是在文件之间匹配,并且上述方法给了我一个带有 NAs 的大 xts,这是我更喜欢另一种类型的 merge/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)