删除具有特定值的数据框行
delete row of a dataframe with a specific value
我有一个包含 10 列和超过 10000 行的数据框 (df),我想删除所有包含值 -999 的行,我想这很简单,所以我这样做:
dfnew=df[!rowSums(df ==-999),]
我所有的列都具有相同数量的元素 (10950) 和我的所有行 (10),但是当我 运行 这个我得到错误:
Error in Ops.data.frame(xyz, xyy[!rowSums(xyy == -999), ]) :
‘==’ only defined for equally-sized data frames
这是我的数据框的头部:
3035 1989 4 25 0 32.8 25.8 0 0 26.2 0
3036 1989 4 26 0 -999.0 23.6 0 0 1.0 0
3037 1989 4 27 0 32.4 18.6 0 0 0.0 0
3038 1989 4 28 0 31.8 19.6 0 0 0.0 0
3039 1989 4 29 0 33.2 19.2 0 0 0.0 0
3040 1989 4 30 0 32.4 19.6 0 0 0.0 0
3041 1989 5 1 0 33.0 19.8 0 0 0.0 0
3042 1989 5 2 0 32.6 18.8 0 0 0.0 0
3043 1989 5 3 0 32.8 19.2 0 0 0.0 0
3044 1989 5 4 0 -999.0 -999.0 0 0 1.0 0
求助!
这将过滤包含 -999
.
的所有行
library(dplyr)
df %>%
filter_all(all_vars(. !=-999))
其中df
是一个数据框。确保行中没有 NA
,否则将 filter_all
更改为 filter_all(all_vars(. !=-999 | is.na(.)))
。
我有一个包含 10 列和超过 10000 行的数据框 (df),我想删除所有包含值 -999 的行,我想这很简单,所以我这样做:
dfnew=df[!rowSums(df ==-999),]
我所有的列都具有相同数量的元素 (10950) 和我的所有行 (10),但是当我 运行 这个我得到错误:
Error in Ops.data.frame(xyz, xyy[!rowSums(xyy == -999), ]) :
‘==’ only defined for equally-sized data frames
这是我的数据框的头部:
3035 1989 4 25 0 32.8 25.8 0 0 26.2 0
3036 1989 4 26 0 -999.0 23.6 0 0 1.0 0
3037 1989 4 27 0 32.4 18.6 0 0 0.0 0
3038 1989 4 28 0 31.8 19.6 0 0 0.0 0
3039 1989 4 29 0 33.2 19.2 0 0 0.0 0
3040 1989 4 30 0 32.4 19.6 0 0 0.0 0
3041 1989 5 1 0 33.0 19.8 0 0 0.0 0
3042 1989 5 2 0 32.6 18.8 0 0 0.0 0
3043 1989 5 3 0 32.8 19.2 0 0 0.0 0
3044 1989 5 4 0 -999.0 -999.0 0 0 1.0 0
求助!
这将过滤包含 -999
.
library(dplyr)
df %>%
filter_all(all_vars(. !=-999))
其中df
是一个数据框。确保行中没有 NA
,否则将 filter_all
更改为 filter_all(all_vars(. !=-999 | is.na(.)))
。