【发布时间】:2018-11-27 22:19:48
【问题描述】:
我有一个包含 3 个列的 data.frame:日期、价格、价格。我想在价格之后和价格之前添加来自矩阵的列。
df = tibble('date' = c('01/01/2000', '02/01/2000', '03/01/2000'),
'rate' = c(7.50, 6.50, 5.54),
'price' = c(92, 94, 96))
我使用输出矩阵的函数计算了速率滞后:
rate_Lags = matrix(data = c(NA, 7.50, 5.54, NA, NA, 7.50), ncol=2, dimnames=list(c(), c('rate_tMinus1', 'rate_tMinus2'))
我想使用名称索引而不是列顺序在价格之后(和价格之前)插入这些滞后。
tibble 包 (Adding a column between two columns in a data.frame) 中的 add_column 函数不起作用,因为它只接受原子向量(因此,如果我有 10 个滞后,我将不得不调用 add_column 10 次)。我可以在我的rate_Lags 矩阵中使用apply。但是,然后,我从rate_Lags 矩阵中丢失了暗名。
如果我知道特定列名的位置(任何检索列名位置的函数?),使用数字索引(子集)(https://stat.ethz.ch/pipermail/r-help/2011-August/285534.html)就可以工作。
有没有什么简单的方法可以在数据框/tibble 对象的特定位置插入一串列s?
【问题讨论】:
标签: r dataframe apply matrix-indexing tibble