0

给出以下数据框:

>head(ethn)    
    caucasian   asian       latino
    8.28E-27    1.00E+00    1.00E+00
    7.23E-01    6.22E-01    7.48E-01
    2.73E-01    1.60E-01    1.00E+00
    1.09E-04    3.16E-01    4.74E-02
    7.99E-01    6.80E-01    7.37E-01
    1.00E+00    1.00E+00    1.00E+00
    1.00E+00    1.00E+00    1.00E+00

如何将所有列中小于 0.30 的所有值设置为 NA?这是一个更大的数据框,但我只是举一个简短的例子。提前致谢。

4

2 回答 2

3

尝试这个:

> ethn[ethn < 0.3] <- NA
> ethn
  caucasian asian latino
1        NA 1.000  1.000
2     0.723 0.622  0.748
3        NA    NA  1.000
4        NA 0.316     NA
5     0.799 0.680  0.737
6     1.000 1.000  1.000
7     1.000 1.000  1.000
于 2013-11-13T20:06:19.750 回答
1

该函数的.default方法is.na<-使用 data.frames 成功:

> is.na(ethn) <- ethn <0.3
> ethn
  caucasian asian latino
1        NA 1.000  1.000
2     0.723 0.622  0.748
3        NA    NA  1.000
4        NA 0.316     NA
5     0.799 0.680  0.737
6     1.000 1.000  1.000
7     1.000 1.000  1.000

查看代码,在编译之前它正是@Jilber 提供的。

`is.na<-.default`
function (x, value) 
{
    x[value] <- NA
    x
}
于 2013-11-13T20:07:39.570 回答