当前位置: 首页 > 编程笔记 >

如何使用grepl函数对R数据帧的行进行子集化?

白吕恭
2023-03-14
本文向大家介绍如何使用grepl函数对R数据帧的行进行子集化?,包括了如何使用grepl函数对R数据帧的行进行子集化?的使用技巧和注意事项,需要的朋友参考一下

R中的grepl函数在R数据帧的字符向量或列的每个元素内搜索与参数模式的匹配项。如果我们想使用grepl对R数据帧的行进行子集化,则可以通过访问包含字符值的列来使用带有单方括号和grepl的子集。

例1

请看以下数据帧:

> x1<-sample(c("A","B","C"),20,replace=TRUE)
> y1<-rnorm(20,1,0.24)
> z1<-rpois(20,2)
> df1<-data.frame(x1,y1,z1)
> df1

输出结果

  x1   y1    z1
1 A 0.8833979 5
2 B 0.5400075 1
3 C 0.6923827 3
4 B 1.5069186 2
5 B 0.8190962 2
6 B 0.8296171 1
7 B 1.2793876 4
8 B 1.1401782 2
9 C 1.5187263 0
10 C 0.6187501 2
11 B 1.3837516 0
12 C 0.8790544 0
13 A 0.7818624 3
14 B 0.8659361 2
15 B 0.9503166 2
16 A 0.8711020 2
17 B 1.0646814 2
18 A 1.2973144 1
19 C 0.9172171 2
20 B 0.7062629 3

通过在x1中排除A来设置df1:

示例

> df1[!grepl("A",df1$x1),]

输出结果

  x1   y1    z1
2 B 0.5400075 1
3 C 0.6923827 3
4 B 1.5069186 2
5 B 0.8190962 2
6 B 0.8296171 1
7 B 1.2793876 4
8 B 1.1401782 2
9 C 1.5187263 0
10 C 0.6187501 2
11 B 1.3837516 0
12 C 0.8790544 0
14 B 0.8659361 2
15 B 0.9503166 2
17 B 1.0646814 2
19 C 0.9172171 2
20 B 0.7062629 3

例2

> x2<-sample(c("India","China","France"),20,replace=TRUE)
> y2<-rexp(20,0.335)
> df2<-data.frame(x2,y2)
> df2

输出结果

   x2      y2
1 India 2.91693551
2 India 5.86599500
3 China 3.41872121
4 India 6.82404548
5 France 4.26003369
6 China 6.31902445
7 China 2.67848516
8 France 3.20830803
9 India 0.01151151
10 India 2.04166415
11 China 1.72607765
12 China 2.31852068
13 India 1.59578792
14 France 1.06253867
15 China 1.44092496
16 China 2.89259111
17 China 0.16299576
18 France 3.37298728
19 India 0.94687404
20 France 1.26557174

通过在x2中排除法国来对df2进行设置:

示例

> df2[!grepl("France",df2$x2),]

输出结果

    x2     y2
1 India 2.91693551
2 India 5.86599500
3 China 3.41872121
4 India 6.82404548
6 China 6.31902445
7 China 2.67848516
9 India 0.01151151
10 India 2.04166415
11 China 1.72607765
12 China 2.31852068
13 India 1.59578792
15 China 1.44092496
16 China 2.89259111
17 China 0.16299576
19 India 0.94687404
 类似资料:
  • 我正在尝试使用多级索引对数据帧进行子集。例如: 如您所见,df2包含带有state和office_id多级索引。对于df2,我想通过使用multindex find来对dataframe进行子集: 在历史上,我会将索引放在dataframe和列的子集中,但这样做效率不高。 谁能给我指出正确的方向吗?谢谢你!

  • 我正在编写一个Python脚本来从我的数码相机导入图片,并且我正在使用Pandas来帮助记账传入的图像。我正在使用EXIF数据为单个图像标记信息,例如相机型号、图像模式、图像格式和相机获取图像的时间戳。这些数据用于将图像分离到目录结构中。我正在努力解决的是如何使用Pandas根据一组时间戳对图像进行分组,例如,这些时间戳都在彼此相隔半小时之内。举个例子,假设我有六张照片,其中三张是在相隔9分钟内拍

  • 我是熊猫数据框的新手,我想应用一个函数,在同一列中取几行。就像当你应用函数diff(),但我想计算文本之间的距离。所以我定义了一个测量距离的函数,我试图使用应用,但我不知道如何选择几行。下面我展示了一个我尝试过的例子和我所期望的: 但它不起作用。我想得到的是: 提前感谢您为我提供的任何帮助。

  • 本文向大家介绍如何在R数据帧中创建具有行总和子集的新列?,包括了如何在R数据帧中创建具有行总和子集的新列?的使用技巧和注意事项,需要的朋友参考一下 在数据分析中,我们必须处理许多情况,其中之一是创建一个新列,该列的行总和只有几行。将重复这些总和,以便获得等于数据帧中的行数的值总数。我们可以将rowSums与rep函数一起使用来创建这种类型的列。 示例 请看以下数据帧- 假设我们要创建一个新列,该列

  • 本文向大家介绍R子集数据框中的行和列,包括了R子集数据框中的行和列的使用技巧和注意事项,需要的朋友参考一下 示例 语法访问的行和列:[,[[,和$ 本主题涵盖访问数据帧的特定行和列的最常用语法。这些是 就像matrix带单括号的data[rows, columns] 使用行号和列号 使用列(和行)名称 像list: 用单括号data[columns]获取数据框 用双括号data[[one_colu

  • 数据采集也即埋点,它是精细化分析的第一步。数据的准确性、可扩展性以及技术人员的高效性依次被视为数据采集的三大要点。埋点,保证了数据的准确性;事件、属性、值的结构保证了数据的可扩展性;埋点文档也保证了团队成员协同的高效性。 为了帮助诸葛io的客户能够准确、高效的采集数据,我们建议您: 一、数据分析需求梳理 数据采集切忌大而全,产品不断迭代,数据分析的需求也是随着产品不断迭代的,明确长远阶段和当前阶段