我有一个如下所示的数据集:
结构(列表(V1 = c(2949735L,3041435L,2972485L,3038555L, 2970906L, 3041901L), V2 = c("superkingdom_Bacteria,phylum_Pseudomonadota,class_Alphaproteobacteria,order_Hyphomicrobiales,family_Lichenihabitantaceae,genus_Lichenifustis", "超级界_细菌,门_假单胞菌,类_α变形菌,目_丝微生物目,科_Beijerinckiaceae,属_甲基囊", “超级界_细菌,假单胞菌门,类_Alphaproteobacteria,目_鞘氨醇单胞菌目,科_鞘氨醇单胞菌科,属_鞘氨醇单胞菌”, “超级界_细菌,假单胞菌门,类_β变形菌,目_伯克霍尔德菌目,科_伯克霍尔德菌科,属_卡巴勒尼亚”, "超级界_细菌,假单胞菌门,类_α变形菌纲,红螺菌目,固氮螺菌科,固氮螺菌属", “超界_真核生物,界_Viridiplantae,门_绿藻门,纲_Ulvophyceae,进化枝_TCBD进化枝,目_Bryopsidales,亚目_Bryopsidineae,family_Bryopsidaceae,genus_Bryopsis” )), row.names = c(NA, 6L), class = "data.frame")
我想“对齐”我的数据,以便根据下划线之前的字符串将第二列中的每个逗号分隔值分隔到一个新列中。
library(tidyr)
df |>
separate_rows(V2, sep = ",") |>
separate(V2, c("level", "value"), sep = "_") |>
pivot_wider(names_from = level, values_from = value)