全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2457 14
2020-04-15
大家好,遇到for循环问题,求朋友们指点,多谢!目的:查找向量miR.signature中的元素 是否出现在数据集GSE13937、GSE102286的 'X.ID_REF.'列(第1列)

问题:
1.第2段的for循环不知是否得到预期结果、第3段的for循环确定没得到预期结果:GSE102286[, 'X.ID_REF.']里面是有'hsa-mir-605', 'hsa-mir‐629'的(能匹配上),在第4段代码中也能得到证实,为什么用第3段的for循环得不出结果?
2.我的代码里,对两个数据集GSE13937、GSE102286是各自运行一遍代码,能否也写个循环,一步搞定?这样的话,两个数据集GSE13937、GSE102286需要先合并成list吗?
3.结果是否应该保存在list里面,这样能够看到具体哪个元素在哪个数据集的第1列中匹配上了?
4.第1段的for循环,是否也能嵌套在一起?

数据已上传至网盘
链接: https://pan.baidu.com/s/1wZH0c3SIQmoLON_qtHjqvg 提取码: mnjj
再次感谢大家!
for.match.rar
大小:(1.47 MB)

 马上下载

本附件包括:

  • for.match.R
  • GSE102286_series_matrix.txt
  • GSE13937_series_matrix.txt



复制代码



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2020-4-15 18:41:46
第一题,print(grep('miR.pattern[j]', 改成print(grep(miR.pattern[j],试试。miR.pattern[j]的值已经是一个字符串了,就是你要检索的,你再加个引号,那你定位的是引号里的内容,而不是这个东西所代表的值。
第二题,只有两个数据集,何必再费劲多写一个循环呢,又不是写以后经常用到的函数,只要能解决问题就好。
第三题,输出结果,看你自己需要啊。
第四题,你第一个for,只是为了调整向量数据的格式,不需要嵌套。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-4-15 21:11:30
llb_321 发表于 2020-4-15 18:41
第一题,print(grep('miR.pattern[j]', 改成print(grep(miR.pattern[j],试试。miR.pattern[j]的值已经是一个 ...
多谢朋友指点,前进了一大步,还差一点点。请您再看一下吧,多谢!第二题,目前是只有两个数据集,怕以后数据集比较多,所以还是想写个循环,还望指点,多谢!

第一题,去掉引号之后是这样的结果
2020-04-15_205851.png

感觉理想的结果应该是这样
character(0)
character(0)
character(0)
character(0)
[1] "\"hsa-miR-605\""

[1] "\"hsa-miR-629\""


去掉引号之前是这样的结果
2020-04-15_205635.png




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-4-15 21:41:36
key <- c('hsa-mir-3607', 'hsa-mir-3677', 'hsa-mir-4661', 'hsa-mir-548v',
         'hsa-mir-605', 'hsa-mir‐629')
miR.signature <- as.data.frame(key)


GSE13937 <- read.table(
  file = "./for.match/GSE13937_series_matrix.txt",
  header = T, sep = "\t", fill = T,
  comment.char = "!"
)
GSE102286 <- read.table(
  file = "./for.match/GSE102286_series_matrix.txt",
  header = T, sep = "\t", fill = T,
  comment.char = "!"
)

GSE13937[, "ID_REF"] <- str_to_lower(GSE13937[, "ID_REF"])
GSE102286[, "ID_REF"] <- str_to_lower(GSE102286[, "ID_REF"])


find.1 <- GSE13937 %>%
  inner_join(miR.signature, by = c("ID_REF"="key"))
find.2 <- GSE102286 %>%
  inner_join(miR.signature, by = c("ID_REF"="key"))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-4-15 22:46:35
drunkfish69 发表于 2020-4-15 21:41
key
多谢朋友指点,按照您的代码(只是把ID_REF改成了X.ID_REF.,因为数据集列名就是这个)运行了一下,貌似不成功。此外,hsa-mir-3607与hsa-miR-3607,在专业上确实代表两种东西,前者是miRNA前体,后者是miRNA成熟体,两者能匹配上一个或两个都可以。再次感谢!
结果如下:
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-4-16 07:06:22
复制代码

复制代码

我也有点糊涂了,设想find.2可以发现'hsa-miR-605', 'hsa-miR‐629'两条记录,实际只能发现一条。怀疑是不是TXT里的encode的问题?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群