嗨,大家好, 所以我想将 BID_TYPE 变为 BANDAVAIL 的列部分移动到新列中。 这样每个价格区间都对应于每个可用区间。 有没有好的方法可以做到这一点?
提前致谢
我尝试了几种使用枢轴函数的方法,但因为每个价格和波段都有不同的数字,所以它对我不起作用。
我还尝试过过滤数据集然后合并,它会创建所有可能的组合。
以下示例将
BID_TYPE
列拆分为两列,一列包含文本,一列包含数字。该数字对于 PRICEBAND 和相应的 BANDAVAIL 数字之间的匹配似乎很有用。
使用正则表达式将字符数据拆分为数字和字母。
library(tidyverse)
data.frame(BID_TYPE = c("PRICEBAND1", "PRICEBAND2", "PRICEBAND3",
"BANDAVAIL1", "BANDAVAIL2", "BANDAVAIL3"),
BID_PRICES = 1:6) |>
separate(BID_TYPE, c("TYPE", "NUM"), sep = "(?<=[A-Za-z])(?=[0-9])") |>
pivot_wider(names_from = TYPE, values_from = BID_PRICES)
结果
# A tibble: 3 × 3
NUM PRICEBAND BANDAVAIL
<chr> <int> <int>
1 1 1 4
2 2 2 5
3 3 3 6