r - 拆分列在分隔符 R 之间保持空值
问题描述
我如何拆分此列(点代表附加值):
annotation
gene1|allele1|effect1|x1|......
gene2|||x2|......
分成几个不同的列:
gene allele effect x . . .
gene1 allele1 effect1 x1 . . .
gene2 NA NA x2 . . .
我试过:
list<-strsplit(as.character(df$annotation), '|')
问题是它返回一个具有不同维度的列表,因为它没有计算两个|
. 那么,当我这样做时:
new_df<-as.data.frame(list)
我收到此错误:
(function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
参数暗示不同的行数)
那么,sprintf 如何将分隔符之间的空格计算为 NA?
解决方案
你可以试试 :
stringr::str_split(df$annotation, '|', fixed = TRUE, simplify = TRUE)
您还可以tstrsplit
从data.table
包中获得:
library(data.table)
setDT(df)
df[, tstrsplit(annotation, "|", fixed = TRUE)
推荐阅读
- laravel - 如果条件为真,如何隐藏和检查单选按钮
- python - 导入错误的原因可能是什么
- ajax - 如何使用 api url 从 lambda 函数获取响应到 ajax 调用
- azure - stopContinuousRecognitionAsync 函数不会停止会话
- python - Pandas 中浮点索引的目的是什么?
- swift - 您如何使用自己的源和元素正确地对 SCNGeometry 进行子类化?
- path - gulp 从另一个驱动器复制源文件
- reactjs - 我怎样才能让定制的风帆发电机工作?
- python - Django,POST方法,已登录用户
- sql - 使用 COUNT() 的 SQL 查询子查询