如何在列表元素之间分配数据框的行

时间:2019-08-28 15:27:35

标签: r list dataframe

我有一个列表,其中包含许多用于不同证券的数据框:对于每种证券,都有一个日期和读数。我还具有一个数据框,该数据框具有一个附加的读取日期对,用于每行证券。我想将额外的读数添加到列表中适当的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

但是不知道从哪里开始。我已经尝试了通常的谷歌搜索方法,但是找不到正确的词来给出答案。

2 个答案:

答案 0 :(得分:0)

一个选择是用 <ImageBackground style={{ flex:1,position:'absolute',width:"100%",height:"100%",bottom:150,justifyContent:"flex-end",alignItems:"center"}} source={{ uri: 'https://facebook.github.io/react-native/docs/assets/favicon.png' }} resizeMode = "contain" > <Text style={{fontSize:30,fontWeight:"bold"}}> ImageBackground</Text> </ImageBackground> 用'Sec'split {d1}数据集,并用group_split中的数据集将行与'z'的相应元素绑定

map2

答案 1 :(得分:0)

您也可以这样做:

Map(rbind, A= z, B = lapply(split(d,d$Sec), function(x){x[-1]}))

# $Z
#      Rank Value
# A.1    1     A
# A.2    2     B
# A.3    3     C
# B      4     D
# 
# $Y
#      Rank Value
# A.1    1     A
# A.2    2     B
# A.3    3     C
# B      4     D