我有两个长度相等的因子数据向量。仅举例:
observe = c(“a”,“b”,“c”,“a”,“b”,“c”,“a”)预测= c(“a”,“a”,“b”,“b”,“b”,“c”,“c”)最终,我想…
t(sapply(split(predicted == observed, observed), table)) # FALSE TRUE #a 2 1 #b 1 1 #c 1 1
我建议你用 data.table 用于定义结果的显式清洁方式:
data.table
library(data.table) observed=c("a", "b", "c", "a", "b", "c", "a") predicted=c("a", "a", "b", "b", "b", "c", "c") dt <- data.table(observed, predicted) res <- dt[, .( T = sum(observed == predicted), F = sum(observed != predicted)), observed ] res # observed T F # 1: a 1 2 # 2: b 1 1 # 3: c 1 1