gpt4 book ai didi

r - 如何根据另一列的部分字符串创建新列

转载 作者:行者123 更新时间:2023-12-05 05:10:08 28 4
gpt4 key购买 nike

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

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

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

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

我尝试过与此线程类似的方法,但我知道我遗漏了一些东西:

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

最佳答案

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

    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

关于r - 如何根据另一列的部分字符串创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56993566/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com