[英]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 = 物流學。
我想創建一個新列,查看作業列的第一個字母,並用它來表示它的研究類型。
我試過類似這個線程的東西,但我知道我錯過了一些東西:
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.