gpt4 book ai didi

r - 从第二个数据帧 R 添加列和插入信息

转载 作者:行者123 更新时间:2023-12-04 08:39:30 24 4
gpt4 key购买 nike

大家好,我有两个数据框,我想以特定方式将信息从一个 df 连接到另一个 df。我会更好地解释。这是我的第一个 df,我想在其中添加 6 列(一般名为 col1、col2 等的列):

           res1 res4 aa1234 
1 AAAAAA 1 4 IVGG
2 AAAAAA 8 11 RPRQ
3 AAAAAA 10 13 RQFP
4 AAAAAA 12 15 FPFL
5 AAAAAA 20 23 NQGR
6 AAAAAA 32 35 HARF
这是第二个 df:
   res1     dist
1 3.711846
1 3.698985
2 4.180874
2 3.112819
3 3.559737
3 3.722107
4 3.842375
4 3.914970
5 3.361647
5 2.982788
6 3.245118
6 3.224230
7 3.538315
7 3.602273
8 3.185184
8 2.771583
9 4.276871
9 3.157737
10 3.933783
10 2.956738



考虑到“res1”,我想将与 res1 = 1 对应的第二个 df 的“dist”中包含的前 6 个值添加到我的新 6 列中的第一个 df。
之后,在第一个 df 中,我有 res1 = 8,所以我想在新的 6 列中添加来自 res1 = 8 的 6 个值,这些值包含在第二个 df 的“dist”中。
我想得到这样的东西
res1 res4   aa1234  col1 col2 col3 col4 col5 col6
1 4 IVGG 3.71 3.79 4.18 3.11 3.55 3.72
8 11 RPRQ 3.18 2.77 4.27 3.15 3.93 2.95
10 13 RQFP
12 15 FPFL
20 23 NQGR
32 35 HARF
请考虑我必须在大型数据集和 1000 多个文件上执行此操作...谢谢!

最佳答案

您可以从 res1 创建一个序列至 res4然后用 pdb 加入数据.

library(tidyverse)

turn %>%
mutate(res = map2(res1, res4, seq)) %>%
unnest(res) %>%
left_join(pdb, by = c('res' = 'res1')) %>%
group_by(res1 = as.character(res1)) %>%
mutate(col = paste0('col', row_number())) %>%
select(-res4, -res, -eleno) %>%
pivot_wider(names_from = col, values_from = dist)

关于r - 从第二个数据帧 R 添加列和插入信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64632871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com