R 从csv中读入选定列以使用data.table编辑并写回同一csv?
我有一个非常大的CSV,它是Huuuuuge单细胞RNAseq数据集的标准化基因表达矩阵,我犯了一个错误,没有将小鼠基因名称更改为人类等效基因 这是一个数据应该是什么样子的示例,我想将值从gene列更改为与人类等效的值R 从csv中读入选定列以使用data.table编辑并写回同一csv?,r,csv,data.table,R,Csv,Data.table,我有一个非常大的CSV,它是Huuuuuge单细胞RNAseq数据集的标准化基因表达矩阵,我犯了一个错误,没有将小鼠基因名称更改为人类等效基因 这是一个数据应该是什么样子的示例,我想将值从gene列更改为与人类等效的值 库(data.table) x我假设你有一个从基因到人类(基因)的翻译。请原谅我不知道我脑子里想的那些。。。因此,我将使用一些字母 (顺便说一句:基因位于第一列的事实使得这一点更加可行和可靠。) 基因我认为任何“标准”CSV工具(utils::write.CSV,readr::w
库(data.table)
x我假设你有一个从基因
到人类
(基因)的翻译。请原谅我不知道我脑子里想的那些。。。因此,我将使用一些字母
(顺便说一句:基因位于第一列的事实使得这一点更加可行和可靠。)
基因我认为任何“标准”CSV工具(utils::write.CSV
,readr::write_CSV
,data.table::fwrite
,或vroom::vroom_write
)都不支持将每行的一部分写回。这实际上是对文件的随机访问,虽然vroom
会为每一行/列编制索引以实现延迟读取,但我认为这并不容易用于替换数据(考虑替换值的长度不同时……有效地“移动”所有剩余字符并不像人们想象的那么容易)。最好是编写一个新文件(或者改用DBMS,也许只是RSQLite
)。我认为它实际上相当通用:“文本文件的随机访问”有它自己的挑战,“随机访问替换”还有更多的挑战。如果你想考虑替代格式,也许序列化的数据(<代码> fST ,<代码>羽毛< /代码>)支持它(IDK)。@ R2EvAs甚至柱形数据格式,如拼花板无法做到这一点(我不能说所有的数据格式)@ MichaelChirico,这就是我所怀疑的。(我不想谈论其他格式的经验或信心。)谢谢如果这是一个可以用sed
完成的替换,那么-I
(就地)选项应该可以工作