在创建你的时候 df , 使用 stringsAsFactors = FALSE 以免处理因素。
df
stringsAsFactors = FALSE
df <- data.frame(Comp, Date, Plot,stringsAsFactors=FALSE) df$z=as.numeric(as.factor(paste(df$Date,df$Plot,sep="#"))) > head(df,25) Comp Date Plot z 1 A 2018-01-01 P1 1 2 A 2018-01-01 P2 2 3 A 2018-01-01 P3 3 4 A 2018-01-01 P4 4 5 A 2018-01-02 P1 5 6 A 2018-01-02 P2 6 7 A 2018-01-02 P3 7 8 A 2018-01-02 P4 8 9 A 2018-01-03 P1 9 10 A 2018-01-03 P2 10 11 A 2018-01-03 P3 11 12 A 2018-01-03 P4 12 13 A 2018-01-04 P1 13 14 A 2018-01-04 P2 14 15 A 2018-01-04 P3 15 16 A 2018-01-04 P4 16 17 A 2018-01-05 P1 17 18 A 2018-01-05 P2 18 19 A 2018-01-05 P3 19 20 A 2018-01-05 P4 20 21 B 2018-01-01 P1 1 22 B 2018-01-01 P2 2 23 B 2018-01-01 P3 3 24 B 2018-01-01 P4 4 25 B 2018-01-02 P1 5
首先,我们生成一个粘贴的新变量 Date 和 Plot 具有随机(更罕见的更好)分隔符的列( # )。然后我们利用了 as.numeric(as.factor() 组合,首先将新变量分组为 factor 然后为每个分配一个数字 level 。
Date
Plot
#
as.numeric(as.factor()
factor
level