如何在存储在 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

以上是 如何在存储在 R 数据框列中的逗号分隔字符串中查找唯一值的数量? 的全部内容, 来源链接: utcz.com/z/341295.html

回到顶部