美文网首页
R语言-检索SNP遇到的相关问题

R语言-检索SNP遇到的相关问题

作者: Akuooo | 来源:发表于2021-10-12 20:16 被阅读0次

一、data.table读取大数据

用fread读取大数据集
循环运行时会出现i,j索引找不到对象的问题(我是设置了两个for循环,遍历每一个单元格,虽然很低级……),具体报错如下

Error in `[.data.table`(x, i, j) :
  j (the 2nd argument inside [...]) is a single symbol but column name 'j' is not found. Perhaps you intended DT[, ..j]. This difference to data.frame is deliberate and explained in FAQ 1.1.

搜索解决方法时,找到一篇文章fread~对于循环索引的影响 - 简书 (jianshu.com)

  1. 里面提到用read.table不会报错,运行了一下确实如此,就是速度也会慢很多。
  2. 列的索引时,可用下面方法
x <- colnames(data)
for(i in 1:ncol(data)){
  data[1,get(x[i])] <- ......

但是,我在用这种方法时也有点问题。报错如下

Error in get(x[j]) : object 'R01' not found

我单独列出这个数据时就不会有问题,只有遍历时会出现,所以我还是用了read.table读取数据。。。害……

二、R语言版本问题

我的Rstudio上R版本是4.0,但服务器上R语言版本是3.x,所以如果在本机Rstudio上进行代码实验,直接搬到服务器运行大数据还是会出现一些错误。

  1. 在服务器版本上试图用conda安装一个4.x版本的R语言环境,但下载的包中缺失了一个什么icudt的包,Linux-安装stringr时报错,这篇文章也提到了,就是在安装stringr时要先装依赖包stringi等等问题。。但这个最终也不知道是什么问题呜呜,目前还没想到办法,所以退而求其次在服务器上用3.5版本的R实验
  2. 分两步同时进行
    准备一个大数据的一小部分数据进行实验
##输入R,用小数据进行实验
> R
> ……

如果能够成功运行就转到外面或者重新开一个窗口写一个大数据的Rscript

##在命令行输入
vi xxx.R

进去之后,在文本第一行输入

#! /usr/bin/env Rscript

然后后面正常写要运行的R语言命令
写完之后Rscript运行

  1. 由于是大数据,不可能一直挂着让他运行,需要后台运行
#一种是直接在命令的最后加一个&,但退出终端后,他也断了
Rscript xxx.R &
#还可以用nohup命令
nohup Rscript xxx.R>/dev/null 2>&1 &
#或者是
nohup Rscript xxx.R >nohup.out 2>&1 &

需要注意的是,在用nohup命令后,需要在命令行输入exit登出系统,不能直接按“×”退出终端

三、stringr包的str_detect函数的一个细节

这个函数其实不是精确匹配字符串的函数,比如我想在raw_data里找到一个包含“956”的数据,它不仅会找到“956”的数据,还会输出“1956”的数据。
也就是说str_detect是寻找完全或非完全匹配的字符串的,所以如果只想要完全匹配的数据,可以采用match函数

相关文章

网友评论

      本文标题:R语言-检索SNP遇到的相关问题

      本文链接:https://www.haomeiwen.com/subject/obrjoltx.html