代码之家  ›  专栏  ›  技术社区  ›  Afke

r如何基于其他列中的字符串值定义新列变量[重复]

  •  0
  • Afke  · 技术社区  · 6 年前

    这是一个重复的问题。

    如何从这个数据框中实现:

    Treatment = c("HS","C","H","S","TR")
    BlockID = c(1,1,1,1,1)
    PlotID = c(1,2,4,5,6)
    Data = c(2003,2003,2003,2003,2003)
    
    df = data.frame(Treatment,BlockID,PlotID,Data)
    

    包含字符串值的新列:

    New Column
    HS12003
    C12003
    H12003
    S12003
    TR12003
    

    我想不出如何“求和”字符串。提前谢谢!

    2 回复  |  直到 6 年前
        1
  •  1
  •   Sotos    6 年前

    你可以使用 do.call 评估 paste0

    do.call(paste0, df[-3])
    #[1] "HS12003" "C12003"  "H12003"  "S12003"  "TR12003"
    
        2
  •  0
  •   RLave    6 年前

    你需要使用 paste0()

    df$pasted <- paste0(df$Treatment, df$BlockID, df$Data)
    
    #   Treatment BlockID PlotID Data  pasted
    # 1        HS       1      1 2003 HS12003
    # 2         C       1      2 2003  C12003
    # 3         H       1      4 2003  H12003
    # 4         S       1      5 2003  S12003
    # 5        TR       1      6 2003 TR12003
    

    dplyr 解决方案:

    library(dplyr)
    df %>% 
      mutate(pasted = paste0(Treatment, BlockID, Data))