【问题标题】:How to create a new column based on partial string of another column如何根据另一列的部分字符串创建新列
【发布时间】:2019-07-11 16:24:08
【问题描述】:

我有一个包含数千个项目代码向量的数据框,每个代码代表不同类型的研究。这是一个例子:

Data <- data.frame(Assignment = c("C-209", "B-543", "G-01", "LOG"))

任务代码的第一个字母表示研究类型。 C = 制图,B = 生物学,G = 地质学,LOG = 物流。

我想创建一个新列,查看分配列的第一个字母,并用它来表示它的研究类型。

我已经尝试过类似于这个线程的东西,但我知道我错过了一些东西:

R - Creating New Column Based off of a Partial String

Data <- data.frame(Assignment = c("C-209", "B-543", "G-01", "LOG"))

Types <- data.frame(Type = c("Cartography", "Biology", "Geology","Logistic"), 
                 stringsAsFactors = FALSE)

Data %>% 
  mutate(Type = str_match(Assignment, Types$Type)[1,])

【问题讨论】:

    标签: r dplyr stringr


    【解决方案1】:

    您可以在 Types data.frame 中添加一个新列 Code,然后将其与原始表连接。您还需要在 Data data.frame 中创建一个 Code 列。

        library(dplyr)
        library(stringr)
    
        Data <- data.frame(Assignment = c("C-209", "B-543", "G-01", "LOG"))
    
        Types <- data.frame(Type = c("Cartography", "Biology", "Geology","Logistic"),
                        Code = c("C","B","G","L"), # Create new column here
                        stringsAsFactors = FALSE)
    
    
        Data <- Data %>% mutate(Code = substr(Assignment,1L,1L)) # extract first character
    
        Data <- left_join(Data, Types, by = "Code") %>% select(Assignment, Type) # combine
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-08
      • 2022-01-21
      • 2021-11-18
      • 2021-03-28
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      • 2016-06-22
      相关资源
      最近更新 更多