Нечто подобное может производить то, что вы хотите.
for (i in seq_along(levels(df$A))) {
sub_df <- split(df, df$A)
print(names(sub_df[i]))
print(sub_df[[i]]["E"])
#if you don't want to pass "E" manually, and you know it is the last col
#print(df_sub[[i]][ncol(df_sub[[i]])])
}
# [1] "N"
# E
# 2 345
# [1] "Y"
# E
# 1 123
# 3 541
# 4 567
Вы можете ?split
, если хотите увидеть его Usage
.
Данные
#dput(df)
structure(list(A = structure(c(2L, 1L, 2L, 2L), .Label = c("N",
"Y"), class = "factor"), B = structure(c(2L, 1L, 2L, 2L), .Label = c("0",
"1"), class = "factor"), E = c(123L, 345L, 541L, 567L)), row.names = c(NA,
-4L), class = "data.frame")