r - 如何使用带有 R 的“每个”函数命名众多列?
问题描述
我使用 parse 和 each 创建了一个动态列表。我想将它添加到我的数据框中。鉴于此列表的长度为 10,我需要创建 10 个列名称,以便可以将列表的元素添加到数据框中。你知道如何一次命名许多列吗?
我尝试使用命令“名称”来创建列名,但我的数据框没有考虑到它
d %>% update(what=list(p_return_tpL=parse(text="xprev(p_return_t, -1)")))%>%
update(what=list(lags <- 1:3 %>% each( function(k) parse(text=paste("xprev(eps_t, ", -k, ")")) ) ))
l <- (1:L)%>%each(function(k) parse(text=paste("xprev(eps_t,", -k,")" )))
names(l) <- paste0("dl", 1:L)
dataset <- d %>% update(what=list(p_return_tpL=parse(text="xprev(p_return_t, -1)"), names(l)=l))
当我这样做时,我得到了错误:
Error: unexpected '=' in "dataset <- d %>% update(what=list(p_return_tpL=parse(text="xprev(p_return_t, -1)"), names(l)="
我的数据样本是:
> d
price_t eps_t p_return_t
1 136.5962 1 -7.615930e-02
2 136.5200 -1 0.000000e+00
3 136.5251 1 0.000000e+00
4 136.5251 1 2.115385e-02
5 136.5960 1 0.000000e+00
6 136.5960 1 2.500000e-04
7 136.5962 1 -7.621599e-02
我希望它是
> d
price_t eps_t p_return_t eps_t1 eps_t2
1 136.5962 1 -7.615930e-02 -1 1
2 136.5200 -1 0.000000e+00 1 1
3 136.5251 1 0.000000e+00 1 1
4 136.5251 1 2.115385e-02 1 1
5 136.5960 1 0.000000e+00 1 1
6 136.5960 1 2.500000e-04 1 -1
7 136.5962 1 -7.621599e-02 -1 1
我想在这个数据集中添加这些列。我尝试了很多方法来为我创建的列分配名称,但是当我使用命令“names”时,它会命名每个元素,但我不能在命令“update”中使用它。我使用“更新”来更新我的数据框 d 并将我创建的列表添加到 d
如果你能给我一些提示来解决这个问题,我会很高兴
解决方案
推荐阅读
- python - Skip gram模型的输入是否有多个标签?
- c - 为什么这会给出 0 输出
- php - Bootsrapmodal 在其他按钮上设置时未打开
- java - 使用 HTTP POST 数据正常,当我使用 SOAP 发送数据时它变为空/null
- git - 删除主分支的初始 git commit
- google-cloud-platform - 如何将文件上传到 Google Cloud Filestore?
- google-sheets - 无法在 R studio 中访问谷歌表格(Rmarkdown 文件)
- android - Android - 缩放缩放后从图像视图中查找原始 X 和 Y 点
- python - Urlparse 应用于列以提取长度和 TLD 信息
- javascript - DataTables SearchBuilder 和 Moment.js 之间的冲突