[英]R boxplot Subset column based on value in another column
在进行大搜索后,我需要一些帮助!
我需要根据另一列数据对一列进行子集化。
我的数据集如下所示:
学期 | 姓名 | 真的 | 结果 |
---|---|---|---|
T1 | 名称1 | 真的 | 4 |
T2 | 名称2 | 错误的 | 6 |
T3 | 名称3 | 真的 | 5.5 |
T3 | 名称4 | 错误的 | 4.6 |
dataset <-
structure(
list(
Term = c("T1", "T2", "T3", "T3"),
Name = c("Name1",
"Name2", "Name3", "Name4"),
TRUE. = c(TRUE, FALSE, TRUE, FALSE),
Result = c(4, 6, 5.5, 4.6)
),
class = "data.frame",
row.names = c(NA,-4L)
)
我希望能够对箱线图进行子集化,以仅显示其中一条记录的值为 True 的术语。
例如,T1 的值为 True; T3 有两个值——一个是真,一个是假。 我希望 x 轴显示框 plot 的 T1 和 T3:
ggplot(dataset, aes(x=Term, y=Result)) +
geom_boxplot()
基于按“术语”分组的any
TRUE 值的存在对数据进行子集,并在ggplot
中使用它
library(dplyr)
library(ggplot2)
dataset %>%
group_by(Term) %>%
filter(any(TRUE.)) %>%
ggplot(aes(x = Term, y = Result)) +
geom_boxplot()
或在base R
中使用subset
data_sub <- subset(dataset, Term %in% unique(Term[TRUE.]))
ggplot(data_sub, aes(x=Term, y=Result)) +
geom_boxplot()
我想你可以在subset
使用ave
,例如,
subset(
dataset,
ave(TRUE., Term, FUN = any)
) %>% ggplot(aes(x = Term, y = Result)) +
geom_boxplot()
底座R 一个内胆:
boxplot(Result~Term, data = dataset, subset = Term %in% unique(Term[TRUE.]))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.