【问题标题】:What function should I use to return a vector of characters?我应该使用什么函数来返回字符向量?
【发布时间】:2019-09-09 08:29:29
【问题描述】:

所以我有一个如下所示的数据集:

  state.x77[1,]

人口收入文盲生活经验谋杀高中毕业生弗罗斯特 3615.00 3624.00 2.10 69.05 15.10 41.30 20.00 区域 50708.00

as.numeric(state.x77[1,]) [1] 3615.00 3624.00 2.10 69.05 15.10 41.30 20.00 50708.00

我想要看起来像这样的东西: `[1] “亚利桑那” “华盛顿”

谢谢!

【问题讨论】:

    标签: r function if-statement vector


    【解决方案1】:

    这是purrr 解决方案:

    df[pmap_lgl(df %>% select(starts_with("L0")), ~sd(c(...))>mean(c(...))), "gene_symbol"]
    

    这会将所有以L0 开头的列传递给一个比较sdmean 的函数,然后返回一个逻辑向量,该向量从数据框中选择相关行。 (假设您的数据框名为 df。)管道运算符和 select 函数需要 dplyr

    【讨论】:

      【解决方案2】:

      您可以先选择要应用meansd 的列。假设您想要以 "P" 结尾的列。然后逐行计算sd和逐行计算mean,比较值,返回对应的gene_symbol

      cols <- grep("P$", names(df))
      df$gene_symbol[apply(df[cols],1,sd, na.rm = TRUE) > rowMeans(df[cols],na.rm = TRUE)]
      

      要计算sd,我们也可以使用matrixStats包中的rowSds函数

      library(matrixStats)
      df$gene_symbol[rowSds(as.matrix(df[cols]), na.rm = TRUE) > 
                     rowMeans(df[cols], na.rm = TRUE)]
      

      【讨论】:

        猜你喜欢
        • 2021-01-05
        • 2023-04-01
        • 2019-09-18
        • 2021-07-31
        • 2012-12-04
        • 2017-06-06
        • 2019-07-08
        • 1970-01-01
        相关资源
        最近更新 更多