2019 - 03 - 00标题22020年5月26日3
我有一个df在这种格式中,我有不同关联数据(fieldID)和值(value)的相同项。
将值1重新编码为'Title', 6重新编码为'Date',并将数据转换为宽幅格式。
library(dplyr)
library(tidyr)
df %>%
mutate(fieldID = recode(fieldID, '1' = 'Title', '6' = 'Date')) %>%
pivot_wider(names_from = fieldID, values_from = value)
# itemID Title Date
# <int> <chr> <chr>
#1 1 Title 2019 - 03 - 00
#2 2 Title 2 May 26, 2020
#3 3 Title 3 March 2019
df <- structure(list(itemID = c(1L, 1L, 2L, 2L, 3L, 3L), fieldID = c(1L,
6L, 1L, 6L, 1L, 6L), value = c("Title", "2019 - 03 - 00", "Title 2",
"May 26, 2020", "Title 3", "March 2019")),
row.names = c(NA, -6L), class = "data.frame")
可以吗?
library(dplyr)
df %>% select(-fieldID) %>% filter(row_number()%%2 == 0 ) %>% inner_join(
df %>% select(-fieldID) %>% filter(row_number()%%2 != 0 ), by = 'itemID'
) %>% select(itemID, 'Date' = value.x, 'Title' = value.y)
# A tibble: 3 x 3
itemID Date Title
<dbl> <chr> <chr>
1 1 2019 - 03 - 00 Title
2 2 May 26, 2020 Title 2
3 3 March 2019 Title 3
数据使用:
df
# A tibble: 6 x 3
itemID fieldID value
<dbl> <dbl> <chr>
1 1 1 Title
2 1 6 2019 - 03 - 00
3 2 1 Title 2
4 2 6 May 26, 2020
5 3 1 Title 3
6 3 6 March 2019