【发布时间】:2018-04-18 13:42:49
【问题描述】:
假设有一个行长度不均匀的数据框,未知列 - 即每行可能有不同的长度,但所有 NA 值始终位于末尾。还有三个值:start、penultimate 和last。
问题:如何(优雅地,没有嵌套循环)找到数据框中符合该条件的所有行?
示例:对于以下数据框和值:
df <- structure(list(V1 = c("a", "a", "a", "a", "b"), V2 = c("b", "n", "t", "o", "l"), V3 = c("c", "m", "h", "j", "p"), V4 = c("d", "c", "j", "", "e"), V5 = c("", "d", "", "", "")),
.Names = c("V1", "V2", "V3", "V4", "V5"),
row.names = c(NA, 5L), class = "data.frame")
df[df == ""] <- NA
start <- "a"
penultimate <- "c"
last <- "d"
所需的输出将是以下子集:
V1 V2 V3 V4 V5
1 a b c d [NA]
2 a n m c d
【问题讨论】: