当前位置: 首页 > 知识库问答 >
问题:

将列值从数字替换为文本

乐正浩言
2023-03-14

我有每月的列值编号。

<代码>df

我想将其转换为: 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月, 2月, 3月

有人能帮我吗?

提前感谢您抽出宝贵时间

共有2个答案

祁均
2023-03-14

一个非常简单的方法是有一个月的向量。然后,您可以使用月份数作为向量索引(将其强制为整数后)。

Months <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")

df <- data.frame(Month= c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "1", "2", "3"))
df$Month <- Months[as.integer(df$Month)]
df
#>    Month
#> 1    Jan
#> 2    Feb
#> 3    Mar
#> 4    Apr
#> 5    May
#> 6    Jun
#> 7    Jul
#> 8    Aug
#> 9    Sep
#> 10   Oct
#> 11   Nov
#> 12   Dec
#> 13   Jan
#> 14   Feb
#> 15   Mar

同样可以使用内置的< code>R常量< code>month.abb来完成,而不是创建您自己的< code>Months向量。

< sup >由reprex软件包(1.0.0版)于2021年2月21日创建

罗渝
2023-03-14

不是最优雅或编程的解决方案,但您可以将所有值替换为dplyr包中的mutate()函数:

library(dplyr)

df = mutate(df, Month = case_when(Month == "1" ~ "Jan",
                                  Month == "2" ~ "Feb",
                                  Month == "3" ~ "Mar",
                                  Month == "4" ~ "Apr",
                                  Month == "5" ~ "May",
                                  Month == "6" ~ "Jun",
                                  Month == "7" ~ "Jul",
                                  Month == "8" ~ "Aug",
                                  Month == "9" ~ "Sep",
                                  Month == "10" ~ "Oct",
                                  Month == "11" ~ "Nov",
                                  Month == "12" ~ "Dec")

您可以在这里找到使用case_when的留档:https://dplyr.tidyverse.org/reference/case_when.html

另一种基于@r2evans留下的注释的编程解决方案是使用内置的R对象month在一行中完成此操作。abb

df = mutate(df, Month = month.abb[as.numeric(Month)])
 类似资料:
  • 我正在尝试将所有数字单词0-9替换为字符串中相应的数字0-9。 我已经创建了数字单词和数字的两个数组,然后尝试使用替换循环来更改句子。 不确定我做错了什么。 我正在引用我的方法。 谢谢

  • 我是数据分析新手。我正在尝试一些模型在Python SkLearning。我有一个数据集,其中一些列有文本列。像下面, 数据集 是否有办法将这些列值转换为pandas或Sklearn中的数字?。将数字分配给这些值是正确的?。如果测试数据中出现新字符串呢?。 请给我一些建议。

  • 我对蟒蛇和熊猫还不熟悉。我有3列在csv文件和数据类型的列是字符串。 例子 我用熊猫来读取csv文件。我想用左侧列单元格值替换NaN。在这里,我想用col2 1st值替换col3 1st值,这样输出就会像 请帮帮我。谢谢

  • 问题内容: 我正在使用SQL Server 2008,并且我有一个包含大约50个轧机行的表。 该表包含类型为的主要标识列。 我想将该专栏升级为。 我需要知道如何以一种快速的方式做到这一点,这不会使我的数据库服务器不可用,也不会删除或破坏我的任何数据 我该怎么做呢?这样做的后果是什么? 问题答案: 好吧,这真的不是一种快速简便的方法。 我的方法是这样的: 创建具有相同结构的新表-除了将列替换为 -—

  • 主要目标是用hashmap中的值替换字符串中的一些单词作为关键字(关键字是文本中的单词)。钥匙的格式不同。例如:主文本:“Lookahead和Lookahead,统称为Lookahead,是[0-23]断言”hashmap:{Lookahead=test1,Lookahead=test2,Lookahead=test3,[0-23]=newvalue}预期输出:“test1和test2,统称为te