删除包含部分NA变量的行

时间:2016-08-09 15:34:50

标签: r na

我有一个包含部分NA的变量。它是一个变量,表示从开始年份到年终的时间段,但是在年末和正在进行的时间段内,期间范围缺少NA。

#     startyear endyear ongoingasofyear imposition sanctions_period
#1      1945    1947              NA          1        1945-1947
#2      1946    1949              NA          1        1946-1949
#3      1946    1993              NA          1        1946-1993
#4      1946    NA                NA          1        1946-NA
#5      1946    1946              NA          1        1946-1946
#6      1946      NA              NA          1        1946-NA

如何删除在制裁周期中包含NA的观察结果?谢谢!

2 个答案:

答案 0 :(得分:0)

有一个内置命令:complete.cases()

d1 <- read.table(header=TRUE,text="
startyear endyear ongoingasofyear imposition sanctions_period
1945    1947              NA          1        1945-1947
1946    1949              NA          1        1946-1949
1946    1993              NA          1        1946-1993
1946    NA                NA          1        1946-NA
1946    1946              NA          1        1946-1946
1946      NA              NA          1        1946-NA")

d2 <- d1[complete.cases(d1[c("startyear","endyear")]),]

答案 1 :(得分:0)

您也可以使用sqldf

库(sqldf)

df&lt; - read.csv(&#34; df.csv&#34;,header = TRUE,sep =&#34;&#34;)

sqldf(c(&#34;从df中删除,其中,制裁时间类似于&#39;% - NA%&#39;&#34;,&#34;从* df&#34中选择*))