Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从csv中读入选定列以使用data.table编辑并写回同一csv?_R_Csv_Data.table - Fatal编程技术网

R 从csv中读入选定列以使用data.table编辑并写回同一csv?

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

我有一个非常大的CSV,它是Huuuuuge单细胞RNAseq数据集的标准化基因表达矩阵,我犯了一个错误,没有将小鼠基因名称更改为人类等效基因

这是一个数据应该是什么样子的示例,我想将值从gene列更改为与人类等效的值

库(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
(就地)选项应该可以工作