首页 > 解决方案 > R - 折叠观察并创建新列

问题描述

在我的数据框中,单个观察有多行(每行由 引用ref)。我想折叠行并为该列创建新列keyword。结果将包括与keyowrd观察的行数一样多的列(例如keyword_1keyword_2等)。你有什么主意吗?非常感谢。

这是我的 MWE

df1 <- structure(list(rif = c("text10", "text10", "text10", "text11", "text11"), 
                      date = c("20180329", "20180329", "20180329", "20180329", "20180329"), 
                      keyword = c("Lucca", "Piacenza", "Milano", "Cascina", "Padova")), 
                 row.names = c(NA, 5L), class = "data.frame")

标签: r

解决方案


这是否有效:

library(dplyr)
library(tidyr)
df1 %>% group_by(rif,date) %>% mutate(n = row_number()) %>% pivot_wider(id_cols = c(rif,date), values_from = keyword, names_from = n, names_prefix = 'keyword')
# A tibble: 2 x 5
# Groups:   rif, date [2]
  rif    date     keyword1 keyword2 keyword3
  <chr>  <chr>    <chr>    <chr>    <chr>   
1 text10 20180329 Lucca    Piacenza Milano  
2 text11 20180329 Cascina  Padova   NA      

推荐阅读