gpt4 book ai didi

r - 如何将数据框的元素映射到 R 中的另一个数据框?

转载 作者:行者123 更新时间:2023-12-01 23:27:34 25 4
gpt4 key购买 nike

我有以下两个数据框。数据框 1:

<表类="s-表"><头>篮子苹果香蕉柑橘<正文>1C01A03二氧化碳2A01B02C033B01A02B03

数据框 2 的行名称标记为 A-C,列名称标记为 1-3。

我如何才能从数据框 1 中读取元素,并将它们映射到数据框 2 中的相应单元格中。例如,如果 df1 中的元素读取为 C01,它将使用以下字符串打印到数据框 2 行 C 列 1 中:'Apple1'(篮子 1 中的苹果)。

最终目标示例:

<表类="s-表"><头><日>0 <日>1 <日>2 <日>3 <正文>一个苹果2香蕉3香蕉1B苹果3香蕉2柑橘3C苹果1柑橘1柑橘2

最佳答案

我们使用“篮子”以外的列将数据 reshape 为“长”格式,通过在非数字部分和数字部分之间的交界处拆分,“值”列分成两列, 将“name”列与“Basket”合并,并使用 pivot_wider reshape 为“wide”

library(dplyr)
library(tidyr)
df1 %>%
pivot_longer(cols = -Basket) %>%
separate(value, into = c('col1', 'col2'),
sep="(?<=\\D)(?=\\d)", convert = TRUE) %>%
unite(name, name, Basket, sep="") %>%
arrange(col2, col1) %>%
pivot_wider(names_from = col2, values_from = name)

-输出

# A tibble: 3 x 4
# col1 `1` `2` `3`
# <chr> <chr> <chr> <chr>
#1 A Apple2 Banana3 Banana1
#2 B Apple3 Banana2 Citrus3
#3 C Apple1 Citrus1 Citrus2

数据

df1 <- structure(list(Basket = 1:3, Apple = c("C01", "A01", "B01"), 
Banana = c("A03", "B02", "A02"), Citrus = c("C02", "C03",
"B03")), class = "data.frame", row.names = c(NA, -3L))

关于r - 如何将数据框的元素映射到 R 中的另一个数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66959619/

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