根据数据框的列表和列之间的值匹配来创建新的数据框

克留

我正在尝试使用与旧数据框中的列值匹配的值列表来创建新的数据框。同样对于新数据框,我想保留用于匹配的值列表中的顺序。这是我要实现的示例:

#A list of values used for matching
time.new <- c(2, 3, 4, 3, 4, 5, 4, 5, 6)
#The old data frame which I would match on the column of **time.old**
old <- data.frame(time.old=1:10, y=rnorm(10))
   time.old        y
          1  0.20320
          2 -0.74696
          3 -0.73716
          4 -0.61959
          5  1.12733
          6  2.58322
          7 -0.08138
          8 -0.10436
          9 -0.13081
         10 -1.20050
#Here is the expected new data frame
       time        y
          2 -0.74696
          3 -0.73716
          4 -0.61959
          3 -0.73716
          4 -0.61959
          5  1.12733
          4 -0.61959
          5  1.12733
          6  2.58322
Lumartor

尝试使用dplyrleft_join首先,将time.new转换为数据框的列:

library(tidyverse)
time.new <- c(2, 3, 4, 3, 4, 5, 4, 5, 6)
#The old data frame which I would match on the column of **time.old**
old <- data.frame(time.old=1:10, y=rnorm(10))

time.new <- data.frame(time=time.new) 
new_dataframe <- left_join(time.new, old, by=c("time"="time.old"))

在基本R中使用合并:

merge(x = time.new, y = old, by.x = "time", by.y="time.old", all.x = TRUE)

如果要保留time.new的顺序,则需要在数据中添加一个辅助行号列,合并,按行号排序并删除id列:

time.new <- c(2, 3, 4, 3, 4, 5, 4, 5, 6)
old <- data.frame(time.old=1:10, y=rnorm(10))
    
time.new <- data.frame(id = 1:length(time.new), time=time.new)

new_dataframe <- merge(x = time.new, y = old, by.x = "time", by.y="time.old", all.x = TRUE)
new_dataframe <- new_dataframe[order(new_dataframe$id), ]
new_dataframe$id <- NULL

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据两个数据框之间的比较匹配来创建列

来自分类Dev

根据两个数据框中的行是否匹配来创建新列

来自分类Dev

根据条件根据列的总和值创建新的数据框

来自分类Dev

R-根据与现有列匹配的值索引创建新的列数据框

来自分类Dev

根据过去的值创建新的数据框列

来自分类Dev

根据过去的值创建新的数据框列

来自分类Dev

根据熊猫数据框中其他列的条件和值创建新列

来自分类Dev

遍历 pandas 数据框中的行并匹配列表字典中的值以创建新列

来自分类Dev

根据匹配的行数据在熊猫中创建新的数据框

来自分类Dev

根据列表值过滤数据框列

来自分类Dev

根据数据框中两个不同列之间的匹配来删除行

来自分类Dev

如果特定值与列表中的值匹配,则基于该值创建新的数据框

来自分类Dev

根据两列之间的比较来调整数据框

来自分类Dev

根据两列之间的比较来调整数据框

来自分类Dev

无法根据数据框中提供的数据创建新列

来自分类Dev

根据与另一个数据框的匹配在数据框中创建新列

来自分类Dev

根据列表项匹配数据框列值,然后返回列表项

来自分类Dev

想要通过在循环中对数据框进行子集化并根据 i 值分配每个数据框名称来在 R 中创建新数据框

来自分类Dev

基于列值对之间最接近的匹配来合并两个数据框

来自分类Dev

根据一列中所有值的组合来熊猫新数据框

来自分类Dev

根据第二个数据框中的匹配创建新列

来自分类Dev

根据第二个数据框中的部分匹配创建新列

来自分类Dev

R:根据列表元素名称创建新的数据框变量

来自分类Dev

根据匹配其他列与另一个数据框的值来填充数据框的缺失值,同时保持不匹配的值

来自分类Dev

创建新的数据框列

来自分类Dev

根据其他列中的值在python 3(pandas)数据框中创建新列

来自分类Dev

根据两个熊猫数据框之间的条件将值分配给新列

来自分类Dev

根据值过滤并在spark数据框中创建列表

来自分类Dev

根据匹配值从其他数据框中复制列

Related 相关文章

  1. 1

    根据两个数据框之间的比较匹配来创建列

  2. 2

    根据两个数据框中的行是否匹配来创建新列

  3. 3

    根据条件根据列的总和值创建新的数据框

  4. 4

    R-根据与现有列匹配的值索引创建新的列数据框

  5. 5

    根据过去的值创建新的数据框列

  6. 6

    根据过去的值创建新的数据框列

  7. 7

    根据熊猫数据框中其他列的条件和值创建新列

  8. 8

    遍历 pandas 数据框中的行并匹配列表字典中的值以创建新列

  9. 9

    根据匹配的行数据在熊猫中创建新的数据框

  10. 10

    根据列表值过滤数据框列

  11. 11

    根据数据框中两个不同列之间的匹配来删除行

  12. 12

    如果特定值与列表中的值匹配,则基于该值创建新的数据框

  13. 13

    根据两列之间的比较来调整数据框

  14. 14

    根据两列之间的比较来调整数据框

  15. 15

    无法根据数据框中提供的数据创建新列

  16. 16

    根据与另一个数据框的匹配在数据框中创建新列

  17. 17

    根据列表项匹配数据框列值,然后返回列表项

  18. 18

    想要通过在循环中对数据框进行子集化并根据 i 值分配每个数据框名称来在 R 中创建新数据框

  19. 19

    基于列值对之间最接近的匹配来合并两个数据框

  20. 20

    根据一列中所有值的组合来熊猫新数据框

  21. 21

    根据第二个数据框中的匹配创建新列

  22. 22

    根据第二个数据框中的部分匹配创建新列

  23. 23

    R:根据列表元素名称创建新的数据框变量

  24. 24

    根据匹配其他列与另一个数据框的值来填充数据框的缺失值,同时保持不匹配的值

  25. 25

    创建新的数据框列

  26. 26

    根据其他列中的值在python 3(pandas)数据框中创建新列

  27. 27

    根据两个熊猫数据框之间的条件将值分配给新列

  28. 28

    根据值过滤并在spark数据框中创建列表

  29. 29

    根据匹配值从其他数据框中复制列

热门标签

归档