R语言 如何有条件地删除R数据框架中的行
在这篇文章中,我们将讨论如何在R编程语言中有条件地从数据框中删除行。我们需要有条件地从数据框中删除一些数据行,以准备数据。为此,我们使用逻辑条件,在此基础上删除不符合条件的数据。
方法1:通过单一条件移除行
为了从一个数据框架中移除基于单个条件语句的数据行,我们在数据框架中使用方括号[ ],并将条件语句放在其中。这将对数据框架进行切片,并删除所有不满足给定条件的行。
语法 。
df[ 条件语句]
其中。
- df: 决定了要使用的数据框架。
- conditional-statement: 决定过滤数据的条件。
例子 。
在这个例子中,所有x变量小于0的数据点都被删除。
# create sample data
sample_data <- data.frame( x = rnorm(10),
y=rnorm(10,20) )
# print data
print("Sample Data:")
sample_data
# filter data
new_data = sample_data[sample_data$x > 0, ]
# print data
print("Filtered Data:")
new_data
输出 。
Sample Data:
x y
1 1.0356175 19.36691
2 -0.2071733 21.38060
3 -1.3449463 19.56191
4 -0.5313073 19.49135
5 1.7880192 19.52463
6 -0.7151556 19.93802
7 1.5074344 20.82541
8 -1.0754972 20.59427
9 -0.2483219 19.21103
10 -0.8892829 18.93114
Filtered Data:
x y
1 1.035617 19.36691
5 1.788019 19.52463
7 1.507434 20.82541
10 1.0460800 20.05319
方法2:通过多个条件删除行
要从一个数据框架中移除基于多个条件语句的数据行。我们使用方括号 [ ]和数据框架,并将多个条件语句与AND或OR操作符放在里面。这将对数据框架进行切片,并删除所有不满足给定条件的行。
语法。
df[ 条件语句 & / | 条件语句 ] 。
其中。
- df: 决定了要使用的数据框架。
- conditional-statement: 决定过滤数据的条件。
例子 。
在这个例子中,所有x变量小于0和y变量小于19的数据点都被删除。
# create sample data
sample_data <- data.frame( x = rnorm(10),
y=rnorm(10,20) )
# print data
print("Sample Data:")
sample_data
# filter data
new_data = sample_data[sample_datax>0&sample_datay > 0.4, ]
# print data
print("Filtered Data:")
new_data
输出 。
Sample Data:
x y
1 -1.091923406 21.14056
2 0.870826346 20.83627
3 0.285727039 20.89009
4 -0.224661613 20.04137
5 0.653407459 19.01530
6 0.001760769 18.36436
7 -0.572623161 19.72691
8 -0.092852143 19.58567
9 -0.423781311 19.99482
10 -1.332091619 19.36539
Filtered Data:
x y
2 0.870826346 20.83627
3 0.285727039 20.89009
5 0.653407459 19.01530
6 0.001760769 18.36436
方法3:通过subset()函数删除行
subset()函数根据某些条件创建一个给定数据框架的子集。这有助于我们用单个或多个条件语句来删除或选择数据行。subset()函数是R语言的一个内置函数,不需要导入任何第三方软件包。
语法。
subset( df, Conditional-statement )
其中。
- df: 决定了要使用的数据框架。
- conditional-statement: 决定过滤数据的条件。
例子 。
在这个例子中,所有x变量小于19,y变量大于50的数据点都用subset函数删除。
# create sample data
sample_data <- data.frame( x = rnorm(10,20),
y=rnorm(10,50) )
# print data
print("Sample Data:")
sample_data
# filter data
new_data = subset(sample_data, sample_datax>19&sample_datay < 49 )
# print data
print("Filtered Data:")
new_data
输出 。
Sample Data:
x y
1 20.38324 51.02714
2 20.36595 50.64125
3 20.44204 52.28653
4 20.34413 50.08981
5 20.51478 49.53950
6 20.35667 48.88035
7 19.89415 49.78139
8 21.61003 49.43653
9 20.66579 49.14877
10 20.70246 50.06486
Filtered Data:
x y
6 20.35667 48.88035