如何在 R 数据框中使重复的因子水平唯一?
具有重复水平的因子表示分组数据,但如果我们想将分组数据转换为名义数据,则必须删除重复值或将其转换为唯一值。为了在 R 数据框中使重复的因子水平唯一,我们可以使用 make.unique 函数。
查看下面的示例以了解其工作原理。
示例 1
以下代码片段创建了一个示例数据框 -
Factor<-factor(sample(c("Hot","Cold","Warm","Room Temp"),20,replace=TRUE))
Sales<-sample(11:50,20)
df1<-data.frame(Factor,Sales)
df1创建了以下数据框
Factor Sales 1 Warm 43 2 Cold 50 3 Hot 33 4 Hot 25 5 Warm 22 6 Cold 20 7 Hot 18 8 Warm 35 9 Hot 38 10 Room Temp 32 11 Cold 41 12 Hot 40 13 Cold 21 14 Cold 15 15 Cold 23 16 Room Temp 26 17 Cold 48 18 Warm 28 19 Cold 42 20 Room Temp 27
为了使上面创建的数据框中 Factor 列中的水平唯一,请将以下代码添加到上述代码片段中 -
Factor<-factor(sample(c("Hot","Cold","Warm","Room Temp"),20,replace=TRUE))
Sales<-sample(11:50,20)
df1<-data.frame(Factor,Sales)
within(df1,Factor<- ave(as.character(Factor),FUN=make.unique))如果将上面给出的所有代码片段作为单个程序执行,则会生成以下输出 -
Factor Sales 1 Warm 43 2 Cold 50 3 Hot 33 4 Hot.1 25 5 Warm.1 22 6 Cold.1 20 7 Hot.2 18 8 Warm.2 35 9 Hot.3 38 10 Room Temp 32 11 Cold.2 41 12 Hot.4 40 13 Cold.3 21 14 Cold.4 15 15 Cold.5 23 16 Room Temp.1 26 17 Cold.6 48 18 Warm.3 28 19 Cold.7 42 20 Room Temp.2 27
示例 2
以下代码片段创建了一个示例数据框 -
Class<-factor(sample(c("First","Second","Third"),20,replace=TRUE))
Price<-sample(1:10,20,replace=TRUE)
df2<-data.frame(Class,Price)
df2创建了以下数据框
Class Price 1 First 9 2 Second 5 3 Second 7 4 First 7 5 First 8 6 Second 9 7 First 8 8 First 10 9 First 3 10 Third 3 11 Third 6 12 First 3 13 First 8 14 First 3 15 Third 5 16 Second 2 17 First 8 18 Second 2 19 Third 4 20 Third 4
为了使上面创建的数据框中 Class 列中的水平唯一,请将以下代码添加到上述代码片段中 -
Class<-factor(sample(c("First","Second","Third"),20,replace=TRUE))
Price<-sample(1:10,20,replace=TRUE)
df2<-data.frame(Class,Price)
within(df2,Class<-ave(as.character(Class),FUN=make.unique))输出
如果将上面给出的所有代码片段作为单个程序执行,则会生成以下输出 -
Class Price 1 First 9 2 Second 5 3 Second.1 7 4 First.1 7 5 First.2 8 6 Second.2 9 7 First.3 8 8 First.4 10 9 First.5 3 10 Third 3 11 Third.1 6 12 First.6 3 13 First.7 8 14 First.8 3 15 Third.2 5 16 Second.3 2 17 First.9 8 18 Second.4 2 19 Third.3 4 20 Third.4 4
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP