在一个单元格(定界字符串)中选择最小值或最大值

DN1

我有一个数据框,其中每个样本的列可以具有多个值,例如:

Gene       Pvalue1             Pvalue2              Pvalue3                  Beta
Ace    0.0381, ., 0.00357    0.01755, 0.001385    0.0037, NA , 0.039         -0.03,1,15
NOS          NA                  0.02              0.001, 0.00067              0.00009,25,30

我想申请min(),并max()在每列每个基因的(我有成千上万个基因的总数),并得到了p值的最小值但如公测列的最大值。因此,输出数据如下所示:

Gene       Pvalue1             Pvalue2              Pvalue3                  Beta
Ace        0.00357              0.001385             0.0037                   15
NOS          NA                  0.02                0.00067                  30

我是R的新手,不知道我要问的内容是否可能,如果一个单元格中有多个值,它们是否被视为字符串?

丹尼斯

使用stringr的可能解决方案dplyr

library(dplyr)
library(stringr)

getmin = function(col) str_extract_all(col,"[0-9\\.-]+") %>%
  lapply(.,function(x) min(as.numeric(x),na.rm = T) ) %>%
  unlist() 

df %>%
  mutate_at(names(df)[-1],getmin)

  Gene Pvalue1  Pvalue2 Pvalue3  Beta
1  Ace 0.00357 0.001385 0.00370 -3e-02
2  NOS     Inf 0.020000 0.00067 9e-05

Warning messages:
1: In FUN(X[[i]], ...) : NAs introduced by coercion
2: In min(as.numeric(x), na.rm = T) :
  no non-missing arguments to min; returning Inf

该函数使用以下命令getmin提取数字str_extract_all

 str_extract_all(df$Pvalue2,"[0-9\\.-]+")

[[1]]
[1] "0.01755"  "0.001385"

[[2]]
[1] "0.02"

它具有对空格或其他字符不敏感的优点,但只能提取一个点。然后,我遍历此列表以提取每个单元格中的最小值,然后使用将该列表转换为向量unlist使用该as.numeric()函数将可能的提取结果转换.NA

代码df %>% mutate_at(names(df)[-1],getmin)只在第一个列以外的所有列上应用此功能


编辑:如果要避免使用inf值,可以使用此稍作修改的版本:

min2 = function(x) if(all(is.na(x))) NA else min(x,na.rm = T)
getmin = function(col) str_extract_all(col,"[0-9\\.-]+") %>%
  lapply(.,function(x)min2(as.numeric(x)) ) %>%
  unlist() 

df %>%
    mutate_at(names(df)[-1],getmin)

  Gene Pvalue1  Pvalue2 Pvalue3  Beta
1  Ace 0.00357 0.001385 0.00370 -3e-02
2  NOS      NA 0.020000 0.00067 9e-05

数据:

df <- read.table(text = "
                 Gene       Pvalue1             Pvalue2              Pvalue3                  Beta
Ace    0.0381,.,0.00357    0.01755,0.001385    0.0037,NA,0.039         -0.03,1,15
                 NOS          NA                  0.02              0.001,0.00067              0.00009,25,30
                 ",header = T)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据LINQ中一个值的最小值或最大值进行选择

来自分类Dev

根据条件从范围中选择一个单元格值

来自分类Dev

对于另一个单元格动态指定的单元格范围,检索字段的最大值

来自分类Dev

在一个单元格范围内找到一个值作为子字符串

来自分类Dev

如何在光滑的同一查询中选择最大值,最小值

来自分类Dev

在一个SQL查询中选择最大值和最小值

来自分类Dev

Excel 2010-Visual Basic在彩色单元格中查找最小值和最大值

来自分类Dev

一个数据框的每个列的最大值和最小值

来自分类Dev

如何设置对字符串大小= 0或最小值= 5,最大值= 10的验证?

来自分类Dev

在同一列中选择“最大值”和“最小值”

来自分类Dev

是否有一个函数返回最小值和最大值之间的整数?

来自分类Dev

数组的总和,而忽略一个最小值和一个最大值

来自分类Dev

字符串在一个单元格中搜索多个值

来自分类Dev

将最大值返回到包含给定字符串的单元格的左侧

来自分类Dev

Excel从已计算行号的单元格中选择一个值

来自分类Dev

BrentSearch从字符串输入中查找根,最小值和最大值

来自分类Dev

从另一个单元格(VBA)的字符串中删除一个单元格中的值

来自分类Dev

同一行中一个单元格的值与另一行中的最大值

来自分类Dev

MySQL:根据两个不同的ENUM值从不同的行中选择最小值和最大值

来自分类Dev

如果我有一个表显示不同的值,并且有一个显示最小值/最大值的公式,那么有没有办法显示相应的单元格?

来自分类Dev

谷歌表,如果字符串匹配,并且是单元格集合中的最后一个匹配字符串,则获取单元格嵌套的值

来自分类Dev

Excel VBA根据对应范围的最小值到最大值查找范围内的单元格地址

来自分类Dev

在单元格值字符串的长度为1的行中查找最后一个值

来自分类Dev

具有数据栏和固定的最小值/最大值的单个单元格

来自分类Dev

在 Java 中查找字符串数组中字符串元素的最大值/最小值

来自分类Dev

熊猫,从一列中选择最大值,从另一列中选择最小值

来自分类Dev

获取一组字符串中的最大值和最小值

来自分类Dev

Excel VBA 在相邻单元格中查找具有最大值的字符串

来自分类Dev

在 Python 中查找 Pandas 的每个单元格中的最大值/最小值

Related 相关文章

  1. 1

    根据LINQ中一个值的最小值或最大值进行选择

  2. 2

    根据条件从范围中选择一个单元格值

  3. 3

    对于另一个单元格动态指定的单元格范围,检索字段的最大值

  4. 4

    在一个单元格范围内找到一个值作为子字符串

  5. 5

    如何在光滑的同一查询中选择最大值,最小值

  6. 6

    在一个SQL查询中选择最大值和最小值

  7. 7

    Excel 2010-Visual Basic在彩色单元格中查找最小值和最大值

  8. 8

    一个数据框的每个列的最大值和最小值

  9. 9

    如何设置对字符串大小= 0或最小值= 5,最大值= 10的验证?

  10. 10

    在同一列中选择“最大值”和“最小值”

  11. 11

    是否有一个函数返回最小值和最大值之间的整数?

  12. 12

    数组的总和,而忽略一个最小值和一个最大值

  13. 13

    字符串在一个单元格中搜索多个值

  14. 14

    将最大值返回到包含给定字符串的单元格的左侧

  15. 15

    Excel从已计算行号的单元格中选择一个值

  16. 16

    BrentSearch从字符串输入中查找根,最小值和最大值

  17. 17

    从另一个单元格(VBA)的字符串中删除一个单元格中的值

  18. 18

    同一行中一个单元格的值与另一行中的最大值

  19. 19

    MySQL:根据两个不同的ENUM值从不同的行中选择最小值和最大值

  20. 20

    如果我有一个表显示不同的值,并且有一个显示最小值/最大值的公式,那么有没有办法显示相应的单元格?

  21. 21

    谷歌表,如果字符串匹配,并且是单元格集合中的最后一个匹配字符串,则获取单元格嵌套的值

  22. 22

    Excel VBA根据对应范围的最小值到最大值查找范围内的单元格地址

  23. 23

    在单元格值字符串的长度为1的行中查找最后一个值

  24. 24

    具有数据栏和固定的最小值/最大值的单个单元格

  25. 25

    在 Java 中查找字符串数组中字符串元素的最大值/最小值

  26. 26

    熊猫,从一列中选择最大值,从另一列中选择最小值

  27. 27

    获取一组字符串中的最大值和最小值

  28. 28

    Excel VBA 在相邻单元格中查找具有最大值的字符串

  29. 29

    在 Python 中查找 Pandas 的每个单元格中的最大值/最小值

热门标签

归档