我有一个列表,其中包含许多用于不同证券的数据框:对于每种证券,都有一个日期和读数。我还具有一个数据框,该数据框具有一个附加的读取日期对,用于每行证券。我想将其他读数附加到列表中的相应dataframe元素上。
我可以使用进行交互式管理
list_name %>% map_df(slice, .id = "id")
要将列表转换为数据框,请在新读数后附加bind_rows,然后拆分以转换回列表。
但是:我正在尝试将其转换为用于包中的函数。数据中的一列是日期。作为独立功能,它也可以工作。但是当打包并加载为库时,它将引发错误:
Error in UseMethod("slice_") :
no applicable method for 'slice_' applied to an object of class "Date"
例如,如果我有一个列表z和数据框d
b <- data.frame(Rank = c(1, 2, 3), Value = c("A", "B", "C"))
c <- data.frame(Rank = c(1, 2, 3), Value = c("A", "B", "C"))
z <- list(Z = b, Y =c)
d <- data.frame(Sec = c("B", "C"), Rank = 4, Value = c("D"))
我希望结果是
$Z
Rank Value
1 1 A
2 2 B
3 3 C
4 4 D
$Y
Rank Value
1 1 A
2 2 B
3 3 C
4 4 D
但是不知道从哪里开始。我已经尝试了通常的谷歌搜索方法,但是找不到正确的词来给出答案。
一个选项是将split
'Sec'与'd'数据集一起group_split
使用,并将其map2
用于将行与'z'的相应元素绑定
library(tidyverse)
d %>%
group_split(Sec, keep = FALSE) %>%
map2(z, ., bind_rows)
#$Z
# Rank Value
#1 1 A
#2 2 B
#3 3 C
#4 4 D
#$Y
# Rank Value
#1 1 A
#2 2 B
#3 3 C
#4 4 D
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句