這裏是data.table一個例子řdata.table除去其中的一列被複制行如果另一列是NA
dt <- data.table(col1 = c('A', 'A', 'B', 'C', 'C', 'D'), col2 = c(NA, 'dog', 'cat', 'jeep', 'porsch', NA))
col1 col2
1: A NA
2: A dog
3: B cat
4: C jeep
5: C porsch
6: D NA
我想如果COL2是NA並且具有非以除去其中COL1被複制的行-NA值在另一行中。 AKA組由col1組成,如果組有多於一行並且其中一個是NA,則刪除它。這將是dt
結果:
col1 col2
2: A dog
3: B cat
4: C jeep
5: C porsch
6: D NA
我嘗試這樣做:
dt[, list(col2 = ifelse(length(col1>1), col2[!is.na(col2)], col2)), by=col1]
col1 col2
1: A dog
2: B cat
3: C jeep
4: D NA
我缺少什麼?謝謝