全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1907 7
2016-07-13
我想把有缺失值的那一行删除,除了用na.omit之外,我想知道我的操作为什么不对,应该怎样改,还是因为矩阵类型的不能直接用kpj[-i,],是因为NA是逻辑值的关系吗
if(is.na(kpj$FAOPEN[i]))
+ kpj[-i,]

kpj
结果
    TDATE STKCODE   FAOPEN  FACLOSE
1  20150615     733  78.3015  74.3864
2  20150615    2183       NA 527.4183
3  20150615    2348  86.9109  83.0861
4  20150615    2376 118.5060 113.4009
5  20150615    2520 259.2759 249.5459
6  20150615  601311  63.2345  61.8913
7  20150616     733  73.1902  67.8613
8  20150616    2183       NA 527.4183
9  20150616    2348  81.9592  79.5004
10 20150616    2376 111.1412 106.0779
11 20150616    2520 243.8224 254.6399
12 20150616  601311  61.4780  56.7044
13 20150617     733  67.4263  69.2751
14 20150617    2183       NA 527.4183
15 20150617    2348  78.9198  79.7052
16 20150617    2376 105.1154 112.1454
17 20150617    2520 252.8658 256.9867
18 20150617  601311  57.2004  58.4816
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-7-13 11:28:41
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-7-13 12:49:51
十里春风 发表于 2016-7-13 11:28
你是不是想说x本身是没变化的,可是我想说的是即使我做删除操作结果还是错的
>kpj[-i,]
        TDATE STKCODE   FAOPEN  FACLOSE
2  2015-06-01    2183       NA 527.4183
4  2015-06-01    2376  94.9890  97.9600
6  2015-06-01  601311  58.0270  61.2507
8  2015-06-02    2183       NA 527.4183
10 2015-06-02    2376 107.7518 107.7518
12 2015-06-02  601311  63.0278  65.7142
不仅没有删掉缺失值,反而原来的数据也丢失了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-7-13 12:50:34
十里春风 发表于 2016-7-13 11:28
可是我写kpj[-i,]结果也是错的
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-7-13 13:11:24
我贴的例子是,只是kpj[,i]无法实现结果
复制代码

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-7-13 16:00:47
我写了一个例子:

> mat = matrix(1:18,ncol=3)
> mat[c(1,4),1] = NA
> mat[3,2] = NA
> mat[c(2,5),3] = NA
> mat
     [,1] [,2] [,3]
[1,]   NA    7   13
[2,]    2    8   NA
[3,]    3   NA   15
[4,]   NA   10   16
[5,]    5   11   NA
[6,]    6   12   18
>
> # remove the rows with NA in the first columns
> mat[!is.na(mat[,1]),]
     [,1] [,2] [,3]
[1,]    2    8   NA
[2,]    3   NA   15
[3,]    5   11   NA
[4,]    6   12   18
>
> # remove the rows with NA in any column
> mat[!is.na(mat[,1])&!is.na(mat[,2])&!is.na(mat[,3]),]
[1]  6 12 18
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群