【发布时间】:2016-07-08 13:23:04
【问题描述】:
使用以下命令:kable(head(table), format = "markdown")
我生成了以下table:
|V1 |V2 |V3 |V4 |V5 |V6 |V7 |V8 |V9 |V10 |
|:--------------|:---------------------|:--------------------|:-------------------|:--------------------|:---------------------|:--------------------|:---------------------|:-------------|:----------------|
|LdBPK_271870.1 |plasma membrane: 0.52 |Golgi apparatus: 0.2 |ER: 0.09 |extracellular: 0.08 |mitochondrial: 0.07 |cytoplasmic: 0.02 |lysosomal: 0.01 |nuclear: 0.01 |peroxisomal: 0.0 |
|LdBPK_220004.1 |nuclear: 0.56 |cytoplasmic: 0.42 |mitochondrial: 0.01 |peroxisomal: 0.0 |Golgi apparatus: 0.0 |plasma membrane: 0.0 |extracellular: 0.0 |ER: 0.0 |lysosomal: 0.0 |
|LdBPK_020440.1 |cytoplasmic: 0.54 |nuclear: 0.45 |mitochondrial: 0.0 |Golgi apparatus: 0.0 |peroxisomal: 0.0 |plasma membrane: 0.0 |extracellular: 0.0 |ER: 0.0 |lysosomal: 0.0 |
|LdBPK_313080.1 |nuclear: 0.6 |cytoplasmic: 0.29 |mitochondrial: 0.06 |peroxisomal: 0.02 |Golgi apparatus: 0.01 |extracellular: 0.01 |plasma membrane: 0.01 |ER: 0.0 |lysosomal: 0.0 |
|LdBPK_201720.1 |cytoplasmic: 0.89 |nuclear: 0.06 |mitochondrial: 0.02 |peroxisomal: 0.01 |Golgi apparatus: 0.01 |extracellular: 0.0 |plasma membrane: 0.0 |ER: 0.0 |lysosomal: 0.0 |
|LdBPK_070130.1 |cytoplasmic: 0.61 |nuclear: 0.32 |peroxisomal: 0.05 |mitochondrial: 0.02 |Golgi apparatus: 0.0 |plasma membrane: 0.0 |extracellular: 0.0 |ER: 0.0 |lysosomal: 0.0 |
在我的table 中,我想遍历每一行并且:
- 打印列 V1
- 循环遍历每一行并仅打印与我之后的字符串匹配的字段
例如,假设我在字符串“nuclear”之后,代码将执行以下操作。
- 在第一行,打印 V1 列下的字段 (LdBPK_271870.1),然后
- 从列 V2 到 V10 扫描并仅打印与字符串“nuclear”匹配的整个字段(即包括字符串“nuclear”之后的值)。
- 对我表的所有行重复此操作。
在这种情况下,考虑到我的table,代码将在第一行打印 V1 和 V9 下的字段。在第二行,代码会打印出 V1 和 V2 下的字段。在第三个它将打印我,V1 和 V3 下的字段。直到它到达我桌子的尽头。然后输出将是一个包含两列的表:第一列与 V1 相同,第二列仅包含字符串“nuclear”和每行后面的值。
我无法使用方括号对我的数据进行子集化,因为我要查找的字符串可以位于 V2 到 V10 的任何列下。
【问题讨论】:
-
为什么字符串在任何列中意味着您不能子集方括号?想象一个嵌套的 for 循环,它检查每个元素以查看 [i,j] 元素是否包含字符串“nuclear”。如果是,做X。如果不是,通过。
-
我的意思是不使用任何循环...
-
在你的问题中你说你想循环。
-
我绝对可以使用循环。我想说的是,带有方括号的子设置(没有任何循环的帮助)不会完成这项工作。
-
我下面的答案是否打印出您感兴趣的内容?