如何在 r 中删除带零的行(带有示例)


您可以使用以下任何方法来删除 R 数据框中包含零的行:

方法 1:使用 Base R 删除包含零的行

 df_new <- df[apply(df!= 0 , 1 , all),]

方法 2:使用 dplyr 删除包含零的行

 library (dplyr)

df_new <- filter_if(df, is.numeric , all_vars((.) != 0 ))

以下示例展示了如何在实践中使用以下数据框使用每种方法:

 #create data frame
df <- data. frame (points=c(5, 7, 8, 0, 12, 14, 0, 10, 8),
                 assists=c(0, 2, 2, 4, 4, 3, 7, 6, 10),
                 rebounds=c(8, 8, 7, 3, 6, 5, 0, 12, 11))

#view data frame
df

  points assists rebounds
1 5 0 8
2 7 2 8
3 8 2 7
4 0 4 3
5 12 4 6
6 14 3 5
7 0 7 0
8 10 6 12
9 8 10 11

示例 1:使用 Base R 删除包含零的行

以下代码显示如何使用 R 基apply()函数删除包含零的行:

 #create new data frame that removes rows with any zeros from original data frame
df_new <- df[apply(df!= 0 , 1 , all),]

#view new data frame
df_new

  points assists rebounds
2 7 2 8
3 8 2 7
5 12 4 6
6 14 3 5
8 10 6 12
9 8 10 11

请注意,包含空值的三行已被删除。

示例 2:使用 dplyr 删除包含零的行

以下代码显示如何使用 R 中dplyr包中的filter_if()函数删除包含零的行:

 #create new data frame that removes rows with any zeros from original data frame
df_new <- filter_if(df, is.numeric , all_vars((.) != 0 ))

#view new data frame
df_new

  points assists rebounds
1 7 2 8
2 8 2 7
3 12 4 6
4 14 3 5
5 10 6 12
6 8 10 11

请注意,包含空值的三行已被删除。

这对应于我们使用 R 基获得的结果。

注意:我们使用is.numeric函数来指定数据框中的所有数值变量都应为非零。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何从R中的数据框中删除空白行
如何在R中删除具有NA值的列
如何删除R中的重复行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注