【问题标题】:How can I create new columns with the values of multiple old columns?如何使用多个旧列的值创建新列?
【发布时间】:2021-10-20 23:04:41
【问题描述】:

第一次发帖,如果有问题请告诉我,我在 R 中有一个数据框,按以下方式划分:

location type amount produt
a x 10 p1
a x 20 p2
b x 50 p5
b y 100 p10

最后我需要将位置分组为一行,并使“类型”列成为具有“产品”和“金额”列的值的新列,就像这样:

location A_P_X A_P_Y
a p1_10,p2_20
b p5_50 p10_100

我尝试使用一种热编码来制作新的列,但在尝试根据原始“类型”值填充新列时遇到问题

【问题讨论】:

  • Gustavo,当您的问题得到解答时,请accept it;这样做不仅为回答者提供了一些积分,而且还为有类似问题的读者提供了一些关闭。尽管您只能接受一个答案(如果提供了多个答案),但您始终可以选择对您认为有帮助的尽可能多的人进行投票(包括接受的答案)。 (如果仍有问题,您可能需要编辑您的问题并提供更多详细信息。)

标签: r data-science


【解决方案1】:
library(tidyverse)
df %>%
  unite("val", produt:amount, sep = "_") %>%
  mutate(type = paste0("A_P_", toupper(type))) %>%
  pivot_wider(names_from = type, values_from = val, 
              values_fn = list(val = ~paste(., collapse = ", ")))

结果

# A tibble: 2 x 3
  location A_P_X        A_P_Y  
  <chr>    <chr>        <chr>  
1 a        p1_10, p2_20 NA     
2 b        p5_50        p10_100

【讨论】:

  • 感谢您的帮助!它在这里也很完美
猜你喜欢
  • 2020-09-12
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 1970-01-01
  • 2023-02-02
  • 2016-11-17
  • 2020-12-17
  • 2017-10-17
相关资源
最近更新 更多