如何用R数据帧的字符列中的值的序列号创建列?
R数据帧中的一个组列具有重复的值,我们可能希望基于这些值来创建一个序列号为列的列,例如,第一组的第一个值变为1,相同的值第二次出现时该值变为2列等。可以通过使用ave函数来完成此操作,如以下示例所示。
示例
请看以下数据帧-
S.No<-1:20 Group<-sample(LETTERS[1:4],20,replace=TRUE) df1<-data.frame(S.No,Group) df1
输出结果
S.No Group 1 1 B 2 2 A 3 3 C 4 4 C 5 5 B 6 6 C 7 7 C 8 8 C 9 9 D 10 10 D 11 11 C 12 12 C 13 13 A 14 14 B 15 15 A 16 16 D 17 17 C 18 18 B 19 19 A 20 20 C
在df1中为组值的序列号创建一列-
示例
df1$GroupWise_SerialNo<-with(df1,ave(as.character(Group),Group,FUN=seq_along)) df1
输出结果
S.No Group GroupWise_SerialNo 1 1 B 1 2 2 A 1 3 3 C 1 4 4 C 2 5 5 B 2 6 6 C 3 7 7 C 4 8 8 C 5 9 9 D 1 10 10 D 2 11 11 C 6 12 12 C 7 13 13 A 2 14 14 B 3 15 15 A 3 16 16 D 3 17 17 C 8 18 18 B 4 19 19 A 4 20 20 C 9
示例
ID<-1:20
Sample<-sample(c("India","China","UK"),20,replace=TRUE)
df2<-data.frame(ID,Sample)
df2输出结果
ID Sample 1 1 India 2 2 China 3 3 China 4 4 UK 5 5 China 6 6 UK 7 7 India 8 8 India 9 9 UK 10 10 India 11 11 UK 12 12 India 13 13 UK 14 14 UK 15 15 UK 16 16 India 17 17 India 18 18 UK 19 19 UK 20 20 China
在df2中为组值的序列号创建一列-
示例
df2$SampleWise_Numbering<- with(df2,ave(as.character(Sample),Sample,FUN=seq_along)) df2
输出结果
ID Sample SampleWise_Numbering 1 1 India 1 2 2 China 1 3 3 China 2 4 4 UK 1 5 5 China 3 6 6 UK 2 7 7 India 2 8 8 India 3 9 9 UK 3 10 10 India 4 11 11 UK 4 12 12 India 5 13 13 UK 5 14 14 UK 6 15 15 UK 7 16 16 India 6 17 17 India 7 18 18 UK 8 19 19 UK 9 20 20 China 4
热门推荐
3 圆圆的祝福语简短
7 修祖屋祝福语简短
10 双节祝福语简短唯美
11 简短长辈新年祝福语
12 官宣新年祝福语简短
13 好听的元旦简短祝福语
14 春季祝福语女生文案简短
15 生日祝福语大全女生简短
16 合字的祝福语简短
17 元旦的祝福语简短 公司
18 祝寿时祝福语简短精辟