如何重新格式化表格R:
| 水果 | 地點 |
|---|---|
| 蘋果 | 美國、英國 |
| 梨 | PL、DE、FR、AR |
| 香蕉 | 一氧化碳 |
到:
| 水果 | 地點 |
|---|---|
| 蘋果 | 我們 |
| 蘋果 | 英國 |
| 梨 | PL |
| 梨 | 德 |
| 梨 | FR |
| 梨 | 增強現實 |
| 香蕉 | 一氧化碳 |
...假設它出現在檔案 TSV 檔案中
uj5u.com熱心網友回復:
關鍵是用tidyr::separate_rows(table, colname, separator)。
一個包裝:
STRINGdb.reformat.ann.table.per.gene <- function(path_of_tsv = '/Users/.../enrichment.DISEASES.tsv'
, column = 'matching proteins in your network (labels)'
, sep = ',') {
annotation_tsv <- CodeAndRoll2::read.simple.tsv(path_of_tsv)
stopifnot(column %in% colnames(annotation_tsv))
(tbl_split <- tidyr::separate_rows(data = annotation_tsv, column, sep = sep ))
CodeAndRoll2::write.simple.tsv(tbl_split, ManualName = ppp((path_of_tsv), "per.gene.tsv"))
return(tbl_split)
}
uj5u.com熱心網友回復:
你可能有幾種方法可以做到:
- Base R 選項使用
stack
with(df, rev(stack(setNames(strsplit(Location, ", "), Fruit))))
data.table選項
setDT(df)[, .(Location = unlist(strsplit(Location, ", "))), Fruit]
tidyr選項使用unnest
df %>%
mutate(Location = strsplit(Location, ", ")) %>%
unnest(Location)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/407262.html
標籤:
上一篇:從選擇特定值的字典串列創建字典
