在R中,如何将字符串转换为数字,然后转换为因子?

问题描述 投票:0回答:1

我有一个数据集,其中有来自多个调查的文本回复。回答是使用李克特量表完成的,但文本没有标准化。例如:

#create df
df<- data.frame(
id = c('person1','person2','person3'),
category = c('I am 0-10 years old', 'I am 11-20 years old', 'I am between 21-30 years old'),
Q1.do.you.feel.tired.everyday = c('no, never', 'yes, sometimes', 'yes some-times'))

问题 1:如何将字符串 'yes, some-times' 突变为 'yes, times'

问题2:如何更改类别栏的文本?我想去掉“介于”这个词,那么如何将“我在 21-30 岁之间”更改为“我在 21-30 岁”

感谢您的帮助!

我想回答 Q1 因素,所以我使用了:

df<- mutate(df, across(where(is.character), as.factor))

但是,“是的,有时”和“是的,有时”表现为两个不同的层面。所以该列是一个具有 3 个水平的因子,而不是 2 个水平。

r string dplyr factors
1个回答
0
投票
library(dplyr)

df |> 
  mutate(category = gsub("between ", "", category, fixed = TRUE),
         Q1.do.you.feel.tired.everyday = ifelse(Q1.do.you.feel.tired.everyday == "yes some-times", "yes, sometimes", Q1.do.you.feel.tired.everyday),
         across(where(is.character), factor))
#        id             category Q1.do.you.feel.tired.everyday
# 1 person1  I am 0-10 years old                     no, never
# 2 person2 I am 11-20 years old                yes, sometimes
# 3 person3 I am 21-30 years old                yes, sometimes
© www.soinside.com 2019 - 2024. All rights reserved.