有条件地调用R中的特定列

斯图尔特米切尔

我有一个.gz文件,其中包含一个大文本文件。结构看起来像这样:

propVarQ,0.1
multiplier,2.0
p,1,chr1,3
p,1,locus1,80828536,35.735,0.43562663
p,1,snp,1,80828735,G/A,GGGGGGAG,G,0.9166667
p,1,p,7699,0.09534625
p,1,p,317,0.09534625
p,1,p,6181,0.09534625
p,1,p,6570,0.09534625
p,1,p,2370,0.09534625

重复大约1000次。我需要在R中解析它(尽管python也可以选择,但我对R更熟悉),以便它在行中返回第二个值(在本例中为1),并在行中返回第八个值(在在这种情况下(G)仅适用于该行中第3个值为“ snp”的行(在这种情况下为第5行)。在此示例中,我期望的结果是:

1 G

到目前为止,这是我得出的结论:

maf <- file("file.gz")
maflist <- strsplit(readLines(maf), ",")
close(maf)

maflist[maflist[,3]=="snp",]

但是我得到不正确的尺寸数我在读取文件时遇到麻烦,因为每行中的列数不相等,这就是为什么我最终使用的原因strsplit如果有更好的方法,我会接受。

弗里克先生

strsplit返回一个列表,其中每个列表项都包含一个拆分值的向量。因此,列表的长度与输入的长度相同。您无法像完成矩阵一样向下索引到其中。你可以做这样的事情

maflist[sapply(maflist, '[', 3)=="snp",]

对列表进行子集化,仅获得向量中第三项为“ snp”的行。

您知道,awk如果您使用的是UNIX计算机这将使超级简单。就像是

read.table(pipe("gunzip -c file.gz | awk -F',' '$3==\"snp\"{ print $2, $8}'"))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有条件地在R中创建列

来自分类Dev

如何有条件地调用sbt中的任务?

来自分类Dev

有条件地在宏中调用键控参数

来自分类Dev

有条件且有效地更改列中的特定值

来自分类Dev

有条件地调用指令

来自分类Dev

有条件地调用指令

来自分类Dev

有条件地在R中选择多个列

来自分类Dev

有条件地删除 R 中的特定单词

来自分类Dev

有条件地删除R中的行

来自分类Dev

有条件地在R中命名值

来自分类Dev

有条件地填充 R 中的缺失数据

来自分类Dev

如何有条件地仅对angular中的特定字段有条件地添加mydatepicker disablescince prop

来自分类Dev

有条件地提取列

来自分类Dev

如何在R中的数据框中有条件地选择列

来自分类Dev

使用R有条件地替换数据框中的列值

来自分类Dev

有条件地用矩阵值替换data.frame列。R中的VLOOKUP

来自分类Dev

R根据另一列中的文本有条件地替换NA

来自分类Dev

R:有条件地删除矩阵中的行和列

来自分类Dev

如何有条件地更改R中的列的值?

来自分类Dev

有条件地用R计算列中的值数

来自分类Dev

使用R有条件地替换数据框中的列值

来自分类Dev

有条件地将列添加到 dplyr R 中的 groupby

来自分类Dev

有条件地将值添加到新列并替换R中的条件列中的值

来自分类Dev

有条件地将数据表格式化为特定列中的特定值

来自分类Dev

使用data.table根据R中的B列,有条件地删除A列中匹配的行

来自分类Dev

基于 R 中列中的两个变量有条件地过滤组中的值

来自分类Dev

有条件地将值从R中的一列粘贴到另一列

来自分类Dev

使用data.table根据R中的B列有条件地删除A列中匹配的行

来自分类Dev

有条件地将嵌套(字符)列表中的项目排序/变异为R中的新列

Related 相关文章

热门标签

归档