我在R中有一个非常基本的问题,但我似乎无法对其进行排序。我有一个数据帧,如下所示:
date x y
1 01/01/2003 00:00 17.04783 NA
2 02/01/2003 00:00 14.84500 10.117042
3 03/01/2003 00:00 12.23636 NA
4 04/01/2003 00:00 12.62381 NA
5 05/01/2003 00:00 NA 4.516619
6 06/01/2003 00:00 12.93333 NA
我只对同时存在 x 值和 y 值的情况感兴趣,即在上面的数据中,我只对第 2 行感兴趣。
如何仅使用我感兴趣的案例创建新数据框?我还需要保留日期结构,因此理想的数据如下所示:
date x y
1 01/01/2003 00:00 NA NA
2 02/01/2003 00:00 14.84500 10.117042
3 03/01/2003 00:00 NA NA
4 04/01/2003 00:00 NA NA
5 05/01/2003 00:00 NA NA
6 06/01/2003 00:00 NA NA
谢谢!
选择要保留值的行 complete.cases()
; 然后将除其他行中的日期之外的所有内容设置为 NA
。
print(df)
# date result result2
#1 2015-01-03 0.4179292 NA
#2 2015-01-05 0.5830931 NA
#3 2015-01-09 0.9207914 0.3846393
#4 2015-01-13 NA 0.4652525
#5 2015-01-17 0.1167908 0.6160894
#6 2015-01-23 0.7866672 0.8541210
#7 2015-01-27 0.8721665 0.8580503
#8 2015-01-29 NA NA
#9 2015-02-01 NA 0.4687221
#10 2015-02-06 NA 0.2769060
#11 2015-02-11 0.6086726 0.3619493
#12 2015-02-17 0.7421181 NA
df[!complete.cases(df), -1] <- NA
print(df)
# date result result2
#1 2015-01-03 NA NA
#2 2015-01-05 NA NA
#3 2015-01-09 0.9207914 0.3846393
#4 2015-01-13 NA NA
#5 2015-01-17 0.1167908 0.6160894
#6 2015-01-23 0.7866672 0.8541210
#7 2015-01-27 0.8721665 0.8580503
#8 2015-01-29 NA NA
#9 2015-02-01 NA NA
#10 2015-02-06 NA NA
#11 2015-02-11 0.6086726 0.3619493
#12 2015-02-17 NA NA