r - 如何拆分由“;”分隔的列的元素 并保持其频率值
问题描述
我有一个具有这种结构的data.frame;
df1 <- data.frame(
gene = c("Gen1", "Gen2;Gen3", "Gen4"),
freq = c(7, 21 , 51))
我想要一些方法来拆分 Gene2 和 Gene3 但保持它们的频率值,所以最终结果看起来像 df2
df2 <- data.frame(
gene = c("Gen1", "Gen2", "Gen3", "Gen4"),
freq = c(7, 21, 21 , 51))
解决方案
使用data.table
:
setDT(df1)
df1[, .(gene = unlist(strsplit(gene, ";")), freq), by = 1:nrow(df1)
][, !"nrow"]
# gene freq
# 1: Gen1 7
# 2: Gen2 21
# 3: Gen3 21
# 4: Gen4 51
推荐阅读
- facebook - 如果此人不可用,如何通过 facebook-messenger API 向我的 API 发送任何操作?
- swift - 中间字符 swift
- mongodb - 计算mongo文档中重复的对象
- reactjs - 如何在 react-native 项目中使用 fire-base 进行谷歌身份验证?
- reactjs - 重绘后类别更改不正确
- javascript - 更改 reactJs 父级中的状态不会更改 react 子组件中的道具
- maximo - 如何使用本地浏览器时间覆盖 Maximo 服务器时间
- c# - 我无法从视图中获取模型
- java - Exoplayer 离线 - 下载消耗的数据超过文件大小
- python - 如何从数组中取出一些项目