【问题标题】:How do you add a new column in R and assign specific values to specific rows?如何在 R 中添加新列并将特定值分配给特定行?
【发布时间】:2022-01-15 11:06:46
【问题描述】:

我有一个现有的数据框,例如:

Sample Source 1 2
5-SC Uintas x y
5-SC SM x y
5-SC CMB x y
5-SC Uintas x y
5-SC SM x y
5-SC CMB x y

我想在“示例”之后添加一列,其中我将特定值分配给特定行,例如:

Sample Metric Source 1 2
5-SC CC Uintas x y
5-SC CC SM x y
5-SC KV Uintas x y
5-SC KV SM x y
5-SC KSD Uintas x y
5-SC KSD SM x y

到目前为止,这是我失败的努力:

data <- add_column(data, Metric = (CC %in% c(1:2), KV %in% c(3:4), KSD %in% c(5:6)),.after = 'Sample_ID')

请原谅这个问题的简单性,但无论我如何谷歌搜索或筛选 SO,我都无法弄清楚。

提前感谢您的帮助!

【问题讨论】:

    标签: r dataframe tidyverse


    【解决方案1】:
    library(tidyverse)
    df %>%
      add_column(Metric = rep(c('CC', 'KV', 'KSD'), each = 2), .after = 'Sample')
    
     Sample Metric Source X1 X2
    1   5-SC     CC Uintas  x  y
    2   5-SC     CC     SM  x  y
    3   5-SC     KV    CMB  x  y
    4   5-SC     KV Uintas  x  y
    5   5-SC    KSD     SM  x  y
    6   5-SC    KSD    CMB  x  y
    

    【讨论】:

    • 哦,我从来不知道这个功能!我想你也可以提到图书馆:)
    • 谢谢你亲爱的 Onyambu,我实际上是在为后代回答大声笑:) 我经常使用 add_row。现在我明白了。
    【解决方案2】:

    基础 R 选项

    df$Metric = rep(c('CC', 'KV', 'KSD'), each = 2)
    df <- df[, c(1, 5, 2:4)]
    

    输出

      Sample Metric Source X1 X2
    1   5-SC     CC Uintas  x  y
    2   5-SC     CC     SM  x  y
    3   5-SC     KV    CMB  x  y
    4   5-SC     KV Uintas  x  y
    5   5-SC    KSD     SM  x  y
    6   5-SC    KSD    CMB  x  y
    

    数据

    df <- structure(
      list(
        Sample = c("5-SC", "5-SC", "5-SC", "5-SC", "5-SC",
                   "5-SC"),
        Source = c("Uintas", "SM", "CMB", "Uintas", "SM", "CMB"),
        X1 = c("x", "x", "x", "x", "x", "x"),
        X2 = c("y", "y", "y", "y", "y", "y")
      ),
      class = "data.frame",
      row.names = c(NA,-6L)
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 2015-08-27
      相关资源
      最近更新 更多