У меня есть список, содержащий фреймы данных, каждый с различными наблюдениями. Вот пример того, с чем я работаю:
set.seed(9)
df<- data.frame(x1 = round(runif(80, 0, 5)),
x2 = round(runif(80, 0, 15)),
x3 = sample(letters[1:8], 80, replace = TRUE))
my.list <- vector(mode = "list", length = 8)
my.list <- lapply(unique(df$x3), function(x) {subset(df, x3 == x)})
Я пытаюсь найти имена строк каждого фрейма данных, для которого выполняется условие. Используя lapply()
, самое близкое к тому, чего я хочу достичь - это код ниже. Тем не менее, это возвращает NA; Я не уверен, почему это происходит.
> lapply(my.list, function(x) {x <- row.names(x[which(x[,1:2] < 5), ]); x})[[1]]
[1] "1" "5" "11" "22" "46" "53" "61" "63" "64" "79" "80" "NA" "NA.1" "NA.2" "NA.3"
Что нужно сделать, чтобы возвращались только имена строк?