提问人:Dan 提问时间:11/6/2023 更新时间:11/6/2023 访问量:46
为两列生成逗号分隔字符的组合 [duplicate]
Generate Combinations of Comma-Separated Characters for Two Columns [duplicate]
问:
我有一个(示例)数据帧,包括一个标识符(此处为“ID”)和两个 interes t 变量(此处为“V1”和“V2”):
df <- data.frame(ID = c("Sample 1", "Sample 2", "Sample 3"),
V1 = c("A, B, C", "E" , "A, F"),
V2 = c("H, G" , "C, A" , "J"))
对于感兴趣的两个变量(即列),我想生成逗号分隔字符的所有潜在组合,这些字符可通过标识符(通过逐行偏角)进行识别。
结果数据框可能如下所示(只要组合完成,顺序和结构上的一些灵活性是可以接受的):
rd <- data.frame(ID = c("Sample 1","Sample 1", "Sample 1", "Sample 1", "Sample 1", "Sample 1", "Sample 2", "Sample 2", "Sample 3", "Sample 3"),
V1 = c("A", "A", "B", "B", "C", "C", "E", "E", "A", "F"),
V2 = c("H","G","H","G","H","G","C","A","J","J"))
非常感谢您的支持。
答:
2赞
Jon Spring
11/6/2023
#1
library(tidyr)
df |>
separate_rows(V1) |>
separate_rows(V2)
结果
ID V1 V2
1 Sample 1 A H
2 Sample 1 A G
3 Sample 1 B H
4 Sample 1 B G
5 Sample 1 C H
6 Sample 1 C G
7 Sample 2 E C
8 Sample 2 E A
9 Sample 3 A J
10 Sample 3 F J
评论
0赞
Dan
11/6/2023
完善。我想应该换成,对吧?否则,它:)|>
%>%
0赞
Jon Spring
11/6/2023
如果使用 2021 年 5 月 v4.1.0 之后的 R 版本,则它包括使用 .在许多像这样的简单情况下,相当于 .stackoverflow.com/questions/67633022/......|>
%>%
评论