簡體   English   中英

如何根據另一列的部分字符串創建新列

[英]How to create a new column based on partial string of another column

我有一個包含數千個項目代碼的向量的數據框,每個代碼代表不同類型的研究。 下面是一個例子:

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

分配代碼的第一個字母表示研究類型。 C = 制圖學,B = 生物學,G = 地質學,LOG = 物流學。

我想創建一個新列,查看作業列的第一個字母,並用它來表示它的研究類型。

我試過類似這個線程的東西,但我知道我錯過了一些東西:

R - 基於部分字符串創建新列

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,])

您可以在 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM