在R中将多个因子重命名为新的、相同的因子名称
我正在为一个个人项目处理一家餐厅的一些数据。按照数据的组织方式,有表号标签,也有订单名称。我想将所有的to go订单名称更改为相同的标签“togo”,同时保留所有表号在R中将多个因子重命名为新的、相同的因子名称,r,R,我正在为一个个人项目处理一家餐厅的一些数据。按照数据的组织方式,有表号标签,也有订单名称。我想将所有的to go订单名称更改为相同的标签“togo”,同时保留所有表号 > > togo <- c("1","5","12",rep("Togo",6),"4") > data.frame(chknum,togo) chknum togo 1 1 1 2 2 5 3 3 12 4 4 Togo 5
>
> togo <- c("1","5","12",rep("Togo",6),"4")
> data.frame(chknum,togo)
chknum togo
1 1 1
2 2 5
3 3 12
4 4 Togo
5 5 Togo
6 6 Togo
7 7 Togo
8 8 Togo
9 9 Togo
10 10 4
例如:
> chknum <- seq(1:10)
> Tble <- c("1","5","12","Togo", "Bob togo","Cheesecake togo","Togo in 15 mins", "To go", "To-go","4")
> data.frame(chknum,Tble)
chknum Tble
1 1 1
2 2 5
3 3 12
4 4 Togo
5 5 Bob togo
6 6 Cheesecake togo
7 7 Togo in 15 mins
8 8 To go
9 9 To-go
10 10 4
>
> togo <- c("1","5","12",rep("Togo",6),"4")
> data.frame(chknum,togo)
chknum togo
1 1 1
2 2 5
3 3 12
4 4 Togo
5 5 Togo
6 6 Togo
7 7 Togo
8 8 Togo
9 9 Togo
10 10 4
>chknum Tble数据帧(chknum,Tble)
chknum Tble
1 1 1
2 2 5
3 3 12
4多哥
5鲍勃·多哥
6多哥奶酪蛋糕
7多哥15分钟后
要走了
9点9分
10 10 4
理想情况下,我希望所有多哥订单都有相同的标签:
>
> togo <- c("1","5","12",rep("Togo",6),"4")
> data.frame(chknum,togo)
chknum togo
1 1 1
2 2 5
3 3 12
4 4 Togo
5 5 Togo
6 6 Togo
7 7 Togo
8 8 Togo
9 9 Togo
10 10 4
>
>多哥数据帧(chknum,多哥)
多哥
1 1 1
2 2 5
3 3 12
4多哥
5多哥
6多哥
7多哥
8多哥
9多哥
10 10 4
我已经尝试了因子(x)和重命名的所有方式,我知道如何,但有数百种不同的多哥订单名称因子,我不知道最有效的方式 你可以试试正则表达式
>
> togo <- c("1","5","12",rep("Togo",6),"4")
> data.frame(chknum,togo)
chknum togo
1 1 1
2 2 5
3 3 12
4 4 Togo
5 5 Togo
6 6 Togo
7 7 Togo
8 8 Togo
9 9 Togo
10 10 4
chknum <- seq(1:10)
Tble <- c("1","5","12","Togo", "Bob togo","Cheesecake togo","Togo in 15 mins", "To go", "To-go","4")
Tble[grepl("[Tt][Oo].*[Gg][Oo]", Tble)] <- "Togo"
cbind(chknum, Tble)
chknum你可以试试正则表达式
>
> togo <- c("1","5","12",rep("Togo",6),"4")
> data.frame(chknum,togo)
chknum togo
1 1 1
2 2 5
3 3 12
4 4 Togo
5 5 Togo
6 6 Togo
7 7 Togo
8 8 Togo
9 9 Togo
10 10 4
chknum <- seq(1:10)
Tble <- c("1","5","12","Togo", "Bob togo","Cheesecake togo","Togo in 15 mins", "To go", "To-go","4")
Tble[grepl("[Tt][Oo].*[Gg][Oo]", Tble)] <- "Togo"
cbind(chknum, Tble)
chknumlibrary(stringr)
#先抓住数字。从开始(^)到结束($)必须是数字(\\d)。
#替换为括号中第一个括号中的内容,即不要修改
#thsi并不是严格必要的,而是用来展示如何匹配数字。
df$togo库(stringr)
#先抓住数字。从开始(^)到结束($)必须是数字(\\d)。
#替换为括号中第一个括号中的内容,即不要修改
#thsi并不是严格必要的,而是用来展示如何匹配数字。
df$togo我们只需将其转换为数值
即可获得非数值元素的所有NA元素,并将其替换为“togo”
>
> togo <- c("1","5","12",rep("Togo",6),"4")
> data.frame(chknum,togo)
chknum togo
1 1 1
2 2 5
3 3 12
4 4 Togo
5 5 Togo
6 6 Togo
7 7 Togo
8 8 Togo
9 9 Togo
10 10 4
df1$Tble[is.na(as.numeric(df1$Tble))] <- "Togo"
df1
# chknum Tble
#1 1 1
#2 2 5
#3 3 12
#4 4 Togo
#5 5 Togo
#6 6 Togo
#7 7 Togo
#8 8 Togo
#9 9 Togo
#10 10 4
df1$Tble[is.na(as.numeric(df1$Tble))]
>
> togo <- c("1","5","12",rep("Togo",6),"4")
> data.frame(chknum,togo)
chknum togo
1 1 1
2 2 5
3 3 12
4 4 Togo
5 5 Togo
6 6 Togo
7 7 Togo
8 8 Togo
9 9 Togo
10 10 4
df1$Tble[is.na(as.numeric(df1$Tble))] <- "Togo"
df1
# chknum Tble
#1 1 1
#2 2 5
#3 3 12
#4 4 Togo
#5 5 Togo
#6 6 Togo
#7 7 Togo
#8 8 Togo
#9 9 Togo
#10 10 4
df1$Tble[is.na(as.numeric(df1$Tble))]作为旁白,不要使用cbind
创建数据集,因为它会将所有内容转换为文本。使用data.frame(chknum,多哥)
您可以通过排除来完成吗?任何不仅仅是数字的东西都是“to go”?作为旁白,不要使用cbind
创建数据集,因为它会将所有内容转换为文本。使用data.frame(chknum,多哥)
您可以通过排除来完成吗?任何不仅仅是数字的东西都是“ToGo”?可能*
在你亲密接触时太自由了。。。也许从[-]*
开始,然后从那里展开?也许*
在你熟悉的时候太自由了。。。也许可以从[-]*
开始,然后从那里展开?嘿,epi99,谢谢你的回答。使用(\\d)表示任何数字对我来说都是一个新概念。对于任何字母或单词是否有同等的程序?还有一些to go订单不包含字母“to”,例如“Jeff”,我想知道是否有类似(\\word)的东西可以执行与数字相同的过程,但可以使用任何字母/word@SDMcLean13,这些是正则表达式中的字符类。尝试点击参考,然后点击字符类HEY epi99,谢谢你的回答。使用(\\d)表示任何数字对我来说都是一个新概念。对于任何字母或单词是否有同等的程序?还有一些to go订单不包含字母“to”,例如“Jeff”,我想知道是否有类似(\\word)的东西可以执行与数字相同的过程,但可以使用任何字母/word@SDMcLean13,这些是正则表达式中的字符类。尝试单击“引用”,然后单击“角色类”