I have a text file:
df=read.table("E:\\value.txt", sep="\t")
df
k jh fg
1 208 0.15 0.17
2 304 0.00 0.08
现在我想把
k
中不需要的值替换为NA
。df$k[df$k >= 500 ]=NA
这没有问题,但我希望把同一行中jh
和fg
所有对应的值都替换为NA
!
I have a text file:
df=read.table("E:\\value.txt", sep="\t")
df
k jh fg
1 208 0.15 0.17
2 304 0.00 0.08
k
中不需要的值替换为NA
。df$k[df$k >= 500 ]=NA
这没有问题,但我希望把同一行中jh
和fg
所有对应的值都替换为NA
!
很难想象之前没有人提到过这个问题(但我进行了搜索):
is.na(df1[df1$k >300, ] ) <- TRUE
这段代码对于dataframe对象来说是合法的,而"[.data.frame"
则表明它对于类别更为复杂的情况可能同样适用。对于不同的类别,有特定的is.na<-
方法:
> methods(`is.na<-`)
[1] is.na<-.default is.na<-.discrete is.na<-.factor
[.data.frame
的行为对我来说有些奇怪,但对于任何包含NA值的df$k位置,您将获得NA行。在"i"参数中使用subset
或使用& is.na(df$k)
。 - IRTFMrownames(df)!=2
。 - IRTFMdf2[!2,]
... 返回空数据框。这个方法成功的是df2[!seq(nrow(df2)) %in% 2,]
。 - IRTFM