R data.table文本解析

R data.table文本解析,第1张

概述我有一个data.table,其中包含一个包含“Exp 928.6.3(DMSO)”等文本的列.我想将其解析为“Exp 928”和“6.3”之类的列.似乎强大的data.table应该能够快速完成这项工作,但我无法弄清楚如何根据自己的意愿进行弯曲.有什么想法吗? 谢谢, 詹姆士 > dput(head(dat))structure(list(Experiment = c("Exp 927.1.1 我有一个data.table,其中包含一个包含“Exp 928.6.3(DMSO)”等文本的列.我想将其解析为“Exp 928”和“6.3”之类的列.似乎强大的data.table应该能够快速完成这项工作,但我无法弄清楚如何根据自己的意愿进行弯曲.有什么想法吗?

谢谢,
詹姆士

> dput(head(dat))structure(List(Experiment = c("Exp 927.1.1 (DMSO)","Exp 927.1.2 (DMSO)","Exp 927.1.3 (DMSO)","Exp 927.1.4 (DMSO)","Exp 927.1.5 (DMSO)","Exp 927.1.6 (DMSO)"),Conc.1..LP9. = c("Failed","Failed","0.97"),Conc.2..LP11. = c("Failed","0.87"),Conc.3..LP13. = c("Failed","0.81"),Conc.4..LP15. = c("Failed","0.76"),Conc.5..LP17. = c("Failed","0.58"),Conc.1.uM..µM. = c("Failed","0.001"),Conc.2.uM..µM. = c("Failed","0.01"),Conc.3.uM..µM. = c("Failed","0.1"),Conc.4.uM..µM. = c("Failed","1"),Conc.5.uM..µM. = c("Failed","10"),exptNo = List("927","1","927",sample = c("927","2","2"),replicate = c("927","3","3")),.names = c("Experiment","Conc.1..LP9.","Conc.2..LP11.","Conc.3..LP13.","Conc.4..LP15.","Conc.5..LP17.","Conc.1.uM..µM.","Conc.2.uM..µM.","Conc.3.uM..µM.","Conc.4.uM..µM.","Conc.5.uM..µM.","exptNo","sample","replicate"),sorted = "Experiment",class = c("data.table","data.frame"),row.names = c(NA,-6L),.internal.selfref = <pointer: 0x0000000000130788>)
解决方法 我认为有更简单的解决方案,

dat[,do.call(rbind,strsplit(gsub( "(.*?)[.](.*) .*","\1|\2",Experiment),'[|]'))]   [,1]      [,2] [1,] "Exp 927" "1.1"[2,] "Exp 927" "1.2"[3,] "Exp 927" "1.3"[4,] "Exp 927" "1.4"[5,] "Exp 927" "1.5"[6,] "Exp 927" "1.6"
总结

以上是内存溢出为你收集整理的R data.table文本解析全部内容,希望文章能够帮你解决R data.table文本解析所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1077666.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存