如何在存储在 R 数据框列中的逗号分隔字符串中查找唯一值的个数?
如果我们有包含重复值和唯一值的逗号分隔值,那么我们可能希望找到每个逗号分隔值中唯一值的个数。要查找存储在 R 数据框列中的逗号分隔字符串中的唯一值,我们可以使用 stringi 包的 stri_extract_all_regex 函数以及 sapply 函数。
查看下面的示例以了解如何实现。
示例 1
以下代码片段创建了一个示例数据框 -
x<-sample(c("3,2,3,4,5,4,3","5,5,6,7,8,6,8","3,2","5,9,8,0"),20,replace=TRUE)
df1<-data.frame(x)
df1创建了以下数据框 -
x 1 5,5,6,7,8,6,8 2 5,9,8,0 3 5,9,8,0 4 3,2 5 5,5,6,7,8,6,8 6 3,2,3,4,5,4,3 7 3,2,3,4,5,4,3 8 3,2 9 3,2 10 5,5,6,7,8,6,8 11 3,2 12 5,5,6,7,8,6,8 13 5,5,6,7,8,6,8 14 3,2 15 5,5,6,7,8,6,8 16 5,9,8,0 17 5,5,6,7,8,6,8 18 3,2 19 3,2 20 5,9,8,0
要加载 stringi 包并在 x 的每个值中查找唯一值的个数,请将以下代码添加到上述代码片段中 -
library(stringi) df1$Unique_in_x<-sapply(stri_extract_all_regex(df1$x,"[0-9]+"),function(x) length(unique(x))) df1
输出
如果您将以上所有代码片段作为单个程序执行,则会生成以下输出 -
x Unique_in_x 1 5,5,6,7,8,6,8 4 2 5,9,8,0 4 3 5,9,8,0 4 4 3,2 2 5 5,5,6,7,8,6,8 4 6 3,2,3,4,5,4,3 4 7 3,2,3,4,5,4,3 4 8 3,2 2 9 3,2 2 10 5,5,6,7,8,6,8 4 11 3,2 2 12 5,5,6,7,8,6,8 4 13 5,5,6,7,8,6,8 4 14 3,2 2 15 5,5,6,7,8,6,8 4 16 5,9,8,0 4 17 5,5,6,7,8,6,8 4 18 3,2 2 19 3,2 2 20 5,9,8,0 4
示例 2
以下代码片段创建了一个示例数据框 -
y<-sample(c("A,G,R,T,D","Y,I,H,H,F,E,L","T,W,E,E,E,D,S,R"),20,replace=TRUE)
df2<-data.frame(y)
df2创建了以下数据框 -
y 1 Y,I,H,H,F,E,L 2 A,G,R,T,D 3 Y,I,H,H,F,E,L 4 Y,I,H,H,F,E,L 5 A,G,R,T,D 6 Y,I,H,H,F,E,L 7 Y,I,H,H,F,E,L 8 A,G,R,T,D 9 A,G,R,T,D 10 A,G,R,T,D 11 Y,I,H,H,F,E,L 12 Y,I,H,H,F,E,L 13 T,W,E,E,E,D,S,R 14 Y,I,H,H,F,E,L 15 A,G,R,T,D 16 T,W,E,E,E,D,S,R 17 T,W,E,E,E,D,S,R 18 A,G,R,T,D 19 A,G,R,T,D 20 Y,I,H,H,F,E,L
要在 y 的每个值中查找唯一值的个数,请将以下代码添加到上述代码片段中 -
df2$Unique_in_y<-sapply(stri_extract_all_regex(df2$y,"[A-Z]+"),function(x) length(unique(x))) df2
输出
如果您将以上所有代码片段作为单个程序执行,则会生成以下输出 -
y Unique_in_y 1 Y,I,H,H,F,E,L 6 2 A,G,R,T,D 5 3 Y,I,H,H,F,E,L 6 4 Y,I,H,H,F,E,L 6 5 A,G,R,T,D 5 6 Y,I,H,H,F,E,L 6 7 Y,I,H,H,F,E,L 6 8 A,G,R,T,D 5 9 A,G,R,T,D 5 10 A,G,R,T,D 5 11 Y,I,H,H,F,E,L 6 12 Y,I,H,H,F,E,L 6 13 T,W,E,E,E,D,S,R 6 14 Y,I,H,H,F,E,L 6 15 A,G,R,T,D 5 16 T,W,E,E,E,D,S,R 6 17 T,W,E,E,E,D,S,R 6 18 A,G,R,T,D 5 19 A,G,R,T,D 5 20 Y,I,H,H,F,E,L 6
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP