R 如何用数值更新特定单元格?

R 如何用数值更新特定单元格?,r,R,我正在读一个CSV文件。当我第一次检查是否有NA时,没有。然后,我清理数据并将收入变量从num转换为factor,方法是使用以下代码按等宽箱子离散收入: min_income <- min(bd$income) max_income <- max(bd$income) bins = 3 width=(max_income - min_income)/bins; bd$income = cut(bd$income, breaks=seq(min_income, max_income,

我正在读一个CSV文件。当我第一次检查是否有NA时,没有。然后,我清理数据并将收入变量从num转换为factor,方法是使用以下代码按等宽箱子离散收入:

min_income <- min(bd$income)
max_income <- max(bd$income)
bins = 3 
width=(max_income - min_income)/bins;
bd$income = cut(bd$income, breaks=seq(min_income, max_income, width))

有没有一种方法可以在不改变变量类型的情况下更新此文件?为什么它会将该值更改为NA(特别是对于一个值)?我以前没有遇到过这个问题。我可以删除该行,但由于我有该值,我想我应该使用它。

我怀疑NA值是最低值,因为默认情况下
cut()
不包括下边界。您可以通过设置
include\u lowest=TRUE
来更改此设置。见下面的例子

bd = data.frame(income = sample(seq(100,500, 10), 10))

min_income <- min(bd$income)
max_income <- max(bd$income)
bins = 3 
width=(max_income - min_income)/bins;
bd$income2 = cut(bd$income, breaks=seq(min_income, max_income, width))
bd$income3 = cut(bd$income, breaks=seq(min_income, max_income, width),
                 include.lowest = TRUE)

我怀疑NA值是最低值,因为默认情况下
cut()
不包括下边界。您可以通过设置
include\u lowest=TRUE
来更改此设置。见下面的例子

bd = data.frame(income = sample(seq(100,500, 10), 10))

min_income <- min(bd$income)
max_income <- max(bd$income)
bins = 3 
width=(max_income - min_income)/bins;
bd$income2 = cut(bd$income, breaks=seq(min_income, max_income, width))
bd$income3 = cut(bd$income, breaks=seq(min_income, max_income, width),
                 include.lowest = TRUE)
bd
   income   income2   income3
1     340 (247,373] (247,373]
2     360 (247,373] (247,373]
3     250 (247,373] (247,373]
4     120      <NA> [120,247]
5     290 (247,373] (247,373]
6     210 (120,247] [120,247]
7     440 (373,500] (373,500]
8     500 (373,500] (373,500]
9     450 (373,500] (373,500]
10    380 (373,500] (373,500]
bd$income2[is.na(bd$income2)] = levels(bd$income2)[1]
bd
   income   income2   income3
1     340 (247,373] (247,373]
2     360 (247,373] (247,373]
3     250 (247,373] (247,373]
4     120 (120,247] [120,247]
5     290 (247,373] (247,373]
6     210 (120,247] [120,247]
7     440 (373,500] (373,500]
8     500 (373,500] (373,500]
9     450 (373,500] (373,500]
10    380 (373,500] (373,500]