您应该以更有用的形式发布您的数据。例如发布 的输出dput(x)
,其中x
是数据集的名称。大部分工作是获取您在data.frame
.
x <- "(O,Male),(O,Female),(A,Female),(B,Male),(A,Female),(O,Female),(A,Male),
(A,Male),(A,Female),(O,Male),(B,Male),(O,Male),B,Female),(O,Male),
(O,Male), (A,Female),(O,Male),(O,Male),(A,Female),(A,Female),(A,Male),
(A,Male), (AB,Female),(A,Female),(B,Female),(A,Male),(A,Female),
(O,Male),(O,Male), (A,Female),(O,Male),(O,Female),(A,Female),(A,Male),
(A,Male),(O,Male), (A,Male),(O,Female),(O,Female),(AB,Male)"
s <- sub("\\(", "", strsplit(x, "\\),")[[1]])
s <- sub("\\)", "", s)
s <- strsplit(s, ",")
s <- lapply(s, trimws)
dat <- as.data.frame(do.call(rbind, s))
names(dat) <- c("BloodType", "Sex")
其中base R
有创建双向表的功能。
xtabs(~ BloodType + Sex, data = dat)
# Sex
#BloodType Female Male
# A 10 8
# AB 1 1
# B 2 2
# O 5 11