首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据(字符类)的桶2列转换为R中新创建的列

将数据(字符类)的桶2列转换为R中新创建的列
EN

Stack Overflow用户
提问于 2022-07-14 07:13:34
回答 1查看 27关注 0票数 0

我想将A列(rideable_type)和B列(member_casual)中的数据存入C列(新创建的列称为type_of_users)。例如,如果A列是electric_bike,B列是成员,我想在C列中显示为member_electric。我在谷歌上搜索了一个合适的代码,但似乎没有任何效果。找任何能在这个问题上帮助我的人。以下是一些可能非常重要的细节:

  • 数据集名称: df1
  • 列A (rideable_type)和B列(member_casual):给定的数据集。类和模式都是“字符”。
  • 列C (type_of_users):我希望达到的最终结果。类和模式都是“字符”。

数据集截图

我尝试使用下面的代码,但是它在数据集的右侧复制自己。

代码语言:javascript
复制
df1$type_of_users %>% 
  mutate(case_when
         (df1$member_casual =='casual' & df1$rideable_type =='docked_bike' ~ 'casual_docked',
           df1$member_casual =='member' & df1$rideable_type =='docked_bike' ~ 'member_docked',
           df1$member_casual =='casual' & df1$rideable_type =='electric_bike' ~ 'casual_electric',
           df1$member_casual =='member' & df1$rideable_type =='electric_bike' ~ 'member_electric'))

如果这不是合适的,还有哪些其他的种类会有用呢?如果起作用呢?堆栈函数?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-07-14 07:32:28

我想你可以做得简单得多,像这样:

代码语言:javascript
复制
data <- data.frame('rideable_type' = c('electric_bike','docked_bike','docked_bike', 'electric_bike'), 'member_casual' = c('member','casual','casual','member')) 

# columns to paste together
cols <- c( 'rideable_type' , 'member_casual'  )

# create a new column `x` with the three columns collapsed together
data$type_of_users <- apply( data[ , cols ] , 1 , paste , collapse = "_" )

#clean with gsub to remove or substiture any string
data$type_of_users <- gsub("_bike", "", data$type_of_users)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72976613

复制
相关文章

相似问题

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