将多个标的合并为一个对象
一种常见做法是先把数据导入到一个新的环境中。然后,您可以用 eapply() 对该环境中的每个对象调用某个函数,这与 lapply() 对列表中每个元素的做法类似。同样地,eapply() 返回的是一个列表。
接着,您可以用 do.call() 把该列表中的所有元素合并成一个对象。它的作用类似于让 R 以编程方式为您输入并运行一条命令。与其手动输入 merge(my_list[[1]], my_list[[2]]], ...),不如直接输入 do.call(merge, my_list)。
本练习是课程的一部分
在 R 中导入与管理金融数据
练习说明
- 使用
eapply()在data_env中对每个对象调用head()。将结果赋给data_list。 - 使用
do.call()和merge()将data_list的所有元素合并为一个名为data_merged的 xts 对象。 - 由于环境中的对象没有固定顺序,
data_merged的列顺序也没有保证。请使用OHLC()对列进行排序,并将结果保存为data_ohlc。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Call head on each object in data_env using eapply
data_list <- ___(data_env, ___)
# Merge all the data_list elements into one xts object
data_merged <- ___(___, data_list)
# Ensure the columns are ordered: open, high, low, close