我有这个文件:
Name Father1 Father2
Joe 1 1
Jan 2 2
Lion NA NA
Faire NA 5
jake 5 NA
Stan 3 4
Paul 1 2
我想删除除NA之外的父亲1和2之间的不同父亲,像这样:
Name Father1 Father2
Joe 1 1
Jan 2 2
Lion NA NA
Faire NA 5
jake 5 NA
我尝试了这段代码,但是没有用。
New.file=my.file[!(my.file$Father1 != my.file$Father2),]
我得到了这个:
Name Father1 Father2
Joe 1 1
Jan 2 2
NA NA NA
NA NA NA
NA NA NA
程序删除了不同的行,但用NA替换了其他行。
发生了什么事?
答案 0 :(得分:1)
请您尝试一下:
data_not <-data[!(data$father1 != data$father2),]
data[!(data$Name %in% data_not$Name),]
在本示例中,它可以工作:
data <- data.table(Name = c("joe", "jan", "lion", "faire"), father1 =
c(1,2,NA,5), father2 = c(1,2,3,4))
output :
Name father1 father2
1: joe 1 1
2: jan 2 2
3: lion NA 3
4: faire 5 4
data_not <-data[!(data$father1 != data$father2),]
data[!(data$Name %in% data_not$Name),]
new output :
Name father1 father2
1: joe 1 1
2: jan 2 2
3: lion NA 3
告诉我是否有帮助。