如何在小标题(或数据框)中使用 pivot_wider 附加重复项?
How to attaching duplicates using pivot_wider in the tibble(or dataframe)?
当我有如下数据集时:
df <- structure(list(Sample = c("abc", "abc", "def", "ghi", "jkl",
"abc", "mno", "def", "def"), Types = c("A", "A", "A", "A", "B",
"B", "C", "C", "C"), values = c("x", "y", "x", "x", "z", "x",
"y", "z", "x")), class = "data.frame", row.names = c(NA, -9L))
我想使用 pivot_wide 制作如下数据集:
Sample A B C
<chr> <chr> <chr> <chr>
1 abc x;y x
2 def x z;x
3 ghi x
4 jkl z
5 mno y
我试过运行代码:
a<- mut_simple %>%
pivot_wider(names_from = Types, values_from = values)
但是有一些关于重复项的警告消息(例如 abc-A、def-C)。
我如何推进 pivot_wider 使用 ; 删除重复项? ?
您可以在values_fn
-
中指定要应用重复的函数
df <- tidyr::pivot_wider(df, names_from = Types, values_from = values,
values_fn = function(x) paste0(x, collapse = ';'))
df
# Sample A B C
# <chr> <chr> <chr> <chr>
#1 abc x;y x NA
#2 def x NA z;x
#3 ghi x NA NA
#4 jkl NA z NA
#5 mno NA NA y
同样,在data.table
-
library(data.table)
dcast(setDT(df), Sample~Types, value.var = 'values',
fun.aggregate = function(x) paste0(x, collapse = ';'))
数据
df <- structure(list(Sample = c("abc", "abc", "def", "ghi", "jkl",
"abc", "mno", "def", "def"), Types = c("A", "A", "A", "A", "B",
"B", "C", "C", "C"), values = c("x", "y", "x", "x", "z", "x",
"y", "z", "x")), class = "data.frame", row.names = c(NA, -9L))
当我有如下数据集时:
df <- structure(list(Sample = c("abc", "abc", "def", "ghi", "jkl",
"abc", "mno", "def", "def"), Types = c("A", "A", "A", "A", "B",
"B", "C", "C", "C"), values = c("x", "y", "x", "x", "z", "x",
"y", "z", "x")), class = "data.frame", row.names = c(NA, -9L))
我想使用 pivot_wide 制作如下数据集:
Sample A B C
<chr> <chr> <chr> <chr>
1 abc x;y x
2 def x z;x
3 ghi x
4 jkl z
5 mno y
我试过运行代码:
a<- mut_simple %>%
pivot_wider(names_from = Types, values_from = values)
但是有一些关于重复项的警告消息(例如 abc-A、def-C)。
我如何推进 pivot_wider 使用 ; 删除重复项? ?
您可以在values_fn
-
df <- tidyr::pivot_wider(df, names_from = Types, values_from = values,
values_fn = function(x) paste0(x, collapse = ';'))
df
# Sample A B C
# <chr> <chr> <chr> <chr>
#1 abc x;y x NA
#2 def x NA z;x
#3 ghi x NA NA
#4 jkl NA z NA
#5 mno NA NA y
同样,在data.table
-
library(data.table)
dcast(setDT(df), Sample~Types, value.var = 'values',
fun.aggregate = function(x) paste0(x, collapse = ';'))
数据
df <- structure(list(Sample = c("abc", "abc", "def", "ghi", "jkl",
"abc", "mno", "def", "def"), Types = c("A", "A", "A", "A", "B",
"B", "C", "C", "C"), values = c("x", "y", "x", "x", "z", "x",
"y", "z", "x")), class = "data.frame", row.names = c(NA, -9L))