首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将1列中的多个值替换为R中的单个值

将1列中的多个值替换为R中的单个值
EN

Stack Overflow用户
提问于 2022-02-28 04:49:36
回答 2查看 505关注 0票数 2

我有一个名为data的数据格式。它的一个列是data$activity

代码语言:javascript
复制
data$activity = c("eat", "sing", "dance", "sing", "eat and shop", "shop", "drinks",...)

我希望将data$activity列中的特定值替换为“陪伴”(string),并且这些特定值存储在以下向量中:

代码语言:javascript
复制
leisure = c("eat", "drinks", "shop", "eat and shop")

我试过以下几种方法

代码语言:javascript
复制
data$activity[data$activity== leisure] <- "Companionship"

#to replace values in the 'leisure' vector that are found in data$activity, with the string, 'Companionship'

但是错误是:Warning in data$activity == leisure : longer object length is not a multiple of shorter object length

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-28 04:57:49

使用基本R,我们可以创建要替换的搜索项(即"eat|drinks|shop|eat and shop")。|的意思是“或”,所以我们会寻找吃或喝或.等等,如果我们找到了这些条款,那么我们将用Companionship取代它们。

代码语言:javascript
复制
data$activity <- gsub(paste(leisure, collapse = "|"), "Companionship", data$activity)

       activity
1 Companionship
2          sing
3         dance
4          sing
5 Companionship
6 Companionship
7 Companionship

或使用tidyverse

代码语言:javascript
复制
library(tidyverse)

data %>% 
  mutate(activity = str_replace_all(activity, paste(leisure, collapse = "|", "$", sep = ""), "Companionship"))

或者使用您的方法,您只需要使用%in%而不是==,因为您希望匹配leisure中的任何值。

代码语言:javascript
复制
data$activity[data$activity %in% leisure] <- "Companionship"
票数 2
EN

Stack Overflow用户

发布于 2022-02-28 05:02:36

这对我来说是有用的:

代码语言:javascript
复制
library(stringr)

data = data.frame(activity = c("eat", "sing", "dance", "sing", "eat and shop", "shop", "drinks"))

leisure = c("eat", "drinks", "shop", "eat and shop")

data[str_detect(data$activity, pattern = paste0(leisure,collapse = "|")) , "activity"] <- "Companionship"

data
#        activity
# 1 Companionship
# 2          sing
# 3         dance
# 4          sing
# 5 Companionship
# 6 Companionship
# 7 Companionship
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71290711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档