首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用数字替换星星(*)

用数字替换星星(*)
EN

Stack Overflow用户
提问于 2022-04-29 17:25:31
回答 2查看 65关注 0票数 1

我有一个从lightroom导出到R的数据框架,在这个数据框架中,对于每一张照片都用1 (*)到5(*)进行分级,我想用数字替换这些星星,但是尝试了几个函数(gsubreplace),但都没有成功。

代码语言:javascript
运行
复制
Lightroom$Rating <- gsub("*", "1", Lightroom$Rating)

Lightroom <- replace(Lightroom, "*", "1")

谢谢你的帮助

EN

回答 2

Stack Overflow用户

发布于 2022-04-29 17:46:40

如果我正确地理解了你的问题,你想用实际的计数来代替星星的数量。这允许一些灵活性,如果您想要做其他事情,每个匹配的星号数(*)。

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

Lightroom <- data.frame(Rating = c("*",
                                   "**",
                                   "***",
                                   "****",
                                   "*****"))
Lightroom_subbed <- Lightroom %>% 
  mutate(Rating2 = case_when(grepl(x = Rating, pattern = "^\\*{1}$") ~ "1",
                             grepl(x = Rating, pattern = "^\\*{2}$") ~ "2",
                             grepl(x = Rating, pattern = "^\\*{3}$") ~ "3",
                             grepl(x = Rating, pattern = "^\\*{4}$") ~ "4",
                             grepl(x = Rating, pattern = "^\\*{5}$") ~ "5"
  )
  )
代码语言:javascript
运行
复制
Lightroom_subbed
 Rating Rating2
1      *       1
2     **       2
3    ***       3
4   ****       4
5  *****       5
票数 0
EN

Stack Overflow用户

发布于 2022-04-29 19:36:49

可用的方法要简单得多。使用factor数据类型的基础整数结构:

代码语言:javascript
运行
复制
as.numeric(factor(Lightroom$Rating))
[1] 1 2 3 4 5
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72061661

复制
相关文章

相似问题

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