R替换系数级别中的重复值

R替换系数级别中的重复值,r,replace,R,Replace,这是我为我的问题创建可复制数据的尝试: df<-as.data.frame(cbind("value"=rnorm(29),"both.dates"=c( "July July","July August","July October","July November","July December", "August August","August October","August November","August December", "September August","Septe

这是我为我的问题创建可复制数据的尝试:

df<-as.data.frame(cbind("value"=rnorm(29),"both.dates"=c(
"July July","July August","July October","July November","July December",
"August August","August October","August November","August December",
"September August","September September", "September October",
"September November","September December","October August",
"October September", "October October","October November",
"October December","November August","November September", 
"November October", "November November","November December",
"December August", "December September", "December October", 
"December November","December December")))
df$value<-as.numeric(df$value)
head(df)
> head(df)
value    both.dates
1     2     July July
2     8   July August
3    22  July October
4     3 July November
5    12 July December
6    17 August August

df假设您想替换
每一个
重复项,您可以
拆分
字符串,然后
排序
指定级别为
month.name
。这将确保订单与月份订单相同

df$both.dates <- sapply(strsplit(as.character(df$both.dates), ' '),
       function(x) paste(sort(factor(x, levels= month.name)),
                 collapse=' '))

df$tware.dates要使其真正可复制,您应该在开始处放置set.seed(例如
set.seed(123)
)我认为您需要拆分列,然后对
m1进行排序在替换一些因子后,您可以通过执行
df这项操作,在data.frame上删除未使用的级别,但我必须将df$two.dates定义为一个因素afterwards@K.Brannen很高兴知道它起作用了。您可以包装
因子(sapply(…)