- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 ggpmisc
包在绘图中显示线性回归模型。如果 p 值小于 0.2,我只希望在图中显示回归线、p 值和 r2 值。
有谁知道有没有办法根据p值来选择显示这些东西?
这是情节的代码:
library(ggpmisc)
library(ggplot2)
formula <- y~x
ggplot(df, aes(carbon,
acetone,
fill=soil_type)) +
geom_smooth(method = "lm",
formula = formula,
color="black") +
geom_point(aes(shape=soil_type,
color=soil_type,
size=soil_type)) +
scale_fill_manual(values=c("green3", "brown")) +
scale_color_manual(values=c("black", "black")) +
scale_shape_manual(values=c(21, 24))+
scale_size_manual(values=c(2.7, 2.0))+
labs(shape="soil_type",
color="soil_type") +
theme_bw() +
facet_wrap(~days,
ncol = 2)+
stat_poly_eq(
aes(label = paste(stat(adj.rr.label),
stat(p.value.label),
sep = "*\", \"*")),
formula = formula,
rr.digits = 2,
p.digits = 1,
parse = TRUE,size=3.5)
这是数据集:
df <- structure(list(carbon = c(1.4, 0.8, 1.6, 0.1, 0.4, 0.4, 0.4,
1.3, 0.4, 1.1, 0.2, 1, 0.4, 0.4, 0.5, 0.8, 0.1, 0.5, 0.4, 0.6,
1.1, 0.6, 0.2, 0.2, 0.4, 0.1, 0.3, 0.5, 1.4, 0.3, 0.3, 1.1, 0.3,
0.7, 0.4, 0.4, 1.1, 0.1, 0.6, 1.3, 0.1, 1.6, 0.4, 0.5, 0.5, 1.2,
0.5, 0.5, 1.4, 0.8, 1.6, 0.1, 0.4, 0.4, 0.4, 1.3, 0.4, 1.1, 0.2,
1, 0.4, 0.4, 0.5, 0.8, 0.1, 0.5, 0.4, 0.6, 1.1, 0.6, 0.2, 0.2,
0.4, 0.1, 0.3, 0.5, 1.4, 0.3, 0.3, 1.1, 0.3, 0.7, 0.4, 0.4, 1.1,
0.1, 0.6, 1.3, 0.1, 1.6, 0.4, 0.5, 0.5, 1.2, 0.5, 0.5), days = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 10L,
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L), soil_type = c("organic",
"mineral", "organic", "mineral", "mineral", "mineral", "mineral",
"organic", "mineral", "organic", "mineral", "mineral", "mineral",
"mineral", "mineral", "mineral", "mineral", "mineral", "mineral",
"mineral", "organic", "mineral", "mineral", "mineral", "mineral",
"mineral", "mineral", "mineral", "organic", "mineral", "mineral",
"organic", "mineral", "mineral", "mineral", "mineral", "organic",
"mineral", "mineral", "organic", "mineral", "organic", "mineral",
"mineral", "mineral", "organic", "mineral", "mineral", "organic",
"mineral", "organic", "mineral", "mineral", "mineral", "mineral",
"organic", "mineral", "organic", "mineral", "mineral", "mineral",
"mineral", "mineral", "mineral", "mineral", "mineral", "mineral",
"mineral", "organic", "mineral", "mineral", "mineral", "mineral",
"mineral", "mineral", "mineral", "organic", "mineral", "mineral",
"organic", "mineral", "mineral", "mineral", "mineral", "organic",
"mineral", "mineral", "organic", "mineral", "organic", "mineral",
"mineral", "mineral", "organic", "mineral", "mineral"), acetone = c(0.9,
0.7, 0.5, 44.4, 44.2, 9.7, 66, 3.3, 8.6, 26.8, 111.4, 14.5, 40.7,
23.2, 51.6, 3.5, 64.3, 9.8, 48.5, 39.4, 0.2, 24.2, 55.3, 30.2,
28.9, 63.6, 80.7, 50.4, 0.9, 34.4, 102.2, 2.8, 16.5, 9.7, 32.1,
124.4, 3.7, 56.8, 10.6, 0.7, 41.1, 1.3, 62.5, 1.1, 86.3, 0.1,
2.7, 5, 0.1, 0.1, 0.1, 179.1, 60.9, 2.6, 65.3, 14.7, 0, 34.9,
133.7, 0, 56, 36.2, 2, 0.2, 44.9, 24.5, 123.8, 26.5, 0.1, 0.2,
23.6, 146.3, 0.3, 169.2, 164.4, 30, 0, 0, 123.1, 0.2, 3.1, 58,
0, 0.1, 0, 44.9, 1, 0, 102.6, 3.9, 91.4, 1.3, 21.8, 0.1, 0.6,
1.8)), row.names = c(NA, -96L), class = "data.frame")
新df
new_df <- structure(list(log10_carbon_content_pct = c(1.37049458496569,
0.832668550451795, 1.59213788019068, 0.145507171409663, 0.446381812222442,
0.439569517147175, 0.422589839851482, 1.28870743057217, 0.400192488592576,
1.09659720835789, 0.241297387109993, 0.961610908091281, 0.398026858883686,
0.392257161341674, 0.453700473359772, 0.806451323247262, 0.11544408343624,
0.495474955889315, 0.354492600589436, 0.61526599889915, 1.14182589451108,
0.600537294364469, 0.160768561861128, 0.180699201296035, 0.447002898466162,
0.104657791008796, 0.276806345628763, 0.530903734802764, 1.41408715182753,
0.272305844402086, 0.250175948083925, 1.12073840554294, 0.323045735481701,
0.652971172017589, 0.373463721632369, 0.378942698613437, 1.13800253645643,
0.0874264570362855, 0.601027315144485, 1.34486364979713, 0.139721704815204,
1.60809259256346, 0.379305517750582, 0.51215053692203, 0.466496903744401,
1.23437806425139, 0.541766399511599, 0.471365065418019, 1.37049458496569,
0.832668550451795, 1.59213788019068, 0.145507171409663, 0.446381812222442,
0.439569517147175, 0.400192488592576, 1.09659720835789, 0.241297387109993,
0.961610908091281, 0.398026858883686, 0.392257161341674, 0.453700473359772,
0.806451323247262, 0.11544408343624, 0.495474955889315, 0.354492600589436,
0.61526599889915, 1.14182589451108, 0.600537294364469, 0.160768561861128,
0.180699201296035, 0.447002898466162, 0.104657791008796, 0.276806345628763,
0.530903734802764, 1.41408715182753, 0.272305844402086, 0.250175948083925,
1.12073840554294, 0.323045735481701, 0.652971172017589, 0.373463721632369,
0.378942698613437, 1.13800253645643, 0.0874264570362855, 0.601027315144485,
1.34486364979713, 0.139721704815204, 1.60809259256346, 0.379305517750582,
1.23437806425139, 0.541766399511599, 0.471365065418019), daysincubated4 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 94L,
94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L,
94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L,
94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L, 94L,
94L, 94L, 94L, 94L), soil_type = c("organic", "mineral", "organic",
"mineral", "mineral", "mineral", "mineral", "organic", "mineral",
"organic", "mineral", "mineral", "mineral", "mineral", "mineral",
"mineral", "mineral", "mineral", "mineral", "mineral", "organic",
"mineral", "mineral", "mineral", "mineral", "mineral", "mineral",
"mineral", "organic", "mineral", "mineral", "organic", "mineral",
"mineral", "mineral", "mineral", "organic", "mineral", "mineral",
"organic", "mineral", "organic", "mineral", "mineral", "mineral",
"organic", "mineral", "mineral", "organic", "mineral", "organic",
"mineral", "mineral", "mineral", "mineral", "organic", "mineral",
"mineral", "mineral", "mineral", "mineral", "mineral", "mineral",
"mineral", "mineral", "mineral", "organic", "mineral", "mineral",
"mineral", "mineral", "mineral", "mineral", "mineral", "organic",
"mineral", "mineral", "organic", "mineral", "mineral", "mineral",
"mineral", "organic", "mineral", "mineral", "organic", "mineral",
"organic", "mineral", "organic", "mineral", "mineral"), log10_acetone_c = c(0.00926846768640111,
0.00722297480690438, 0.00476160511452692, 0.444394072789671,
0.442046700697262, 0.0969444813777115, 0.659755819077841, 0.0331353719785704,
0.0860951658767628, 0.268398621135863, 1.11425178483619, 0.144553061208862,
0.406832035925707, 0.23171358353469, 0.516127469481814, 0.0348431782930108,
0.643065970146376, 0.0976949557752846, 0.485466415318889, 0.394413062169997,
0.00215649305508422, 0.241895264091051, 0.553024436602299, 0.302071278712034,
0.289062005904557, 0.63551683217124, 0.806576564543876, 0.504060450046605,
0.00875624846772753, 0.343705138058693, 1.02196979128145, 0.0275595437157376,
0.165301609757072, 0.0968005281885054, 0.321248914837189, 1.2444284170588,
0.0365188178564554, 0.567626974656115, 0.10556180687771, 0.00690130440471077,
0.411060711247439, 0.0126107339499284, 0.625415265123349, 0.0107804497649973,
0.863015429856585, 0.000900918219072745, 0.0266090695624902,
0.0503551827004673, 0.000268027005920481, 0.000469317124751776,
3.95824821597101e-05, 0.00441758233902833, 0.00236289505353141,
0.00113488982479906, 0, 0, 0, 0, 0.0531046200284991, 0, 0, 0.000214196723493331,
0.00302534713027796, 0.000436083384348923, 0.000226218782648512,
0.00292979624099701, 0.00124508843867096, 0, 0.0286531848530279,
0.0134556110640359, 0, 0, 0, 0.0104783275343697, 0.0154919389302452,
0.0197930173217508, 0, 0, 0, 0, 0, 0, 0.00051087017306838, 0.000186632771190318,
0.00500797053508424, 0, 0.318561145793628, 0, 0, 0.0126117092437348,
0.00699751577956711, 0)), row.names = c(NA, -92L), class = "data.frame")
names = c(0,0) #Create a starting point of a matrix for the group names
#For each group, run a lm to find if pvalue < 0.2
for(i in unique(new_df$daysincubated4)){
for(j in unique(new_df$soil_type)){
lm = summary(lm(log10_acetone_c~log10_carbon_content_pct, new_df[new_df$daysincubated4==i & new_df$soil_type==j,]))
p = pf(lm$fstatistic[1], lm$fstatistic[2], lm$fstatistic[3], lower.tail=FALSE)
if(p < 0.2){names = rbind(names, c(i,j))} #Get the groups that pass
}
}
names = names[-1,] #Remove starting point
new_df2 = new_df[new_df$daysincubated4%in%names[,1] & new_df$soil_type%in%names[,2],]
formula <- y~x
(acetone_c_vs_cc <- ggplot(new_df,
aes(log10_carbon_content_pct,
log10_acetone_c,
fill=soil_type)) +
geom_smooth(method = "lm",
formula = formula, color="black", data = new_df2) +
geom_point(aes(shape=soil_type, color=soil_type, size=soil_type)) +
scale_fill_manual(values=c("#00AFBB", "brown")) +
scale_color_manual(values=c("black", "black")) +
scale_shape_manual(values=c(21, 24))+
scale_size_manual(values=c(2.4, 1.7))+
labs(shape="soil_type", color="soil_type") +
labs(x = "Soil organic carbon (%)",
y = "Emission (umol/g dw SOC/h)",
title = "Acetone vs Carbon content",
subtitle = "Emission and carbon data has been log10 transformed") +
theme_bw() +
facet_wrap(~daysincubated4,
ncol = 4)+
stat_poly_eq(data = new_df2,
aes(label = paste(stat(adj.rr.label),
stat(p.value.label),
sep = "*\", \"*")),
formula = formula,
rr.digits = 2,
p.digits = 1,
parse = TRUE,size=3.5))
最佳答案
我不确定这是否是最好的方法,但您可以手动运行 lm 来检查您的情况,然后子集 df 以仅使用通过组的观察结果:
首先,检查条件:
names = c(0,0) #Create a starting point of a matrix for the group names
#For each group, run a lm to find if pvalue < 0.2
for(i in unique(df$days)){
for(j in unique(df$soil_type)){
lm = summary(lm(acetone~carbon, df[df$days==i & df$soil_type==j,]))
p = pf(lm$fstatistic[1], lm$fstatistic[2], lm$fstatistic[3], lower.tail=FALSE)
if(p < 0.2){names = rbind(names, c(i,j))} #Get the groups that pass
}
}
names = names[-1,] #Remove starting point
现在,创建 df 的子集,并将其作为 data
参数传递给 geom_smooth
和 stat_poly_eq
:
df2 = df[df$days%in%names[,1] & df$soil_type%in%names[,2],]
ggplot(df, aes(carbon,
acetone,
fill=soil_type)) +
geom_smooth(method = "lm",
formula = formula,
color = "black",
data = df2) +
geom_point(aes(shape=soil_type,
color=soil_type,
size=soil_type)) +
scale_fill_manual(values=c("green3", "brown")) +
scale_color_manual(values=c("black", "black")) +
scale_shape_manual(values=c(21, 24))+
scale_size_manual(values=c(2.7, 2.0))+
labs(shape="soil_type",
color="soil_type") +
theme_bw() +
facet_wrap(~days,
ncol = 2)+
stat_poly_eq(
data = df2,
aes(label = paste(stat(adj.rr.label),
stat(p.value.label),
sep = "*\", \"*")),
formula = formula,
rr.digits = 2,
p.digits = 1,
parse = TRUE,size=3.5)
输出:
编辑 1
我对 df 进行子集化的部分是错误的(它之所以起作用,是因为有一组根本没有通过)。问题是 df$days%in%names[,1] & df$soil_type%in%names[,2]
不会逐对检查。所以我们实际上需要做一个循环:
#Create subset of df with groups that passed
new_df2 = numeric()
for(i in 1:nrow(names)){
new_df2 = rbind(new_df2,
new_df[new_df$daysincubated4%in%names[i,1] & new_df$soil_type%in%names[i,2],])
}
Obs:这会重新排列数据框,但我认为这对您来说不是问题。
输出:
Obs:0.2 p 值实际上是四舍五入的,所以它们应该通过。
关于r - 基于 p 值显示 LM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66274290/
我的问题:非常具体。我正在尝试想出解析以下文本的最简单方法: ^^domain=domain_value^^version=version_value^^account_type=account_ty
好吧,这就是我的困境: 我正在为 Reddit 子版 block 开发常见问题解答机器人。我在 bool 逻辑方面遇到了麻烦,需要一双更有经验的眼睛(这是我在 Python 中的第一次冒险)。现在,该
它首先遍历所有 y 值,然后遍历所有 x 值。我需要 X 和 y 同时改变。 For x = 3 To lr + 1 For y = 2 To lr anyl.Cells(x, 1)
假设我有一个包含 2 列的 Excel 表格:单元格 A1 到 A10 中的日期和 B1 到 B10 中的值。 我想对五月日期的所有值求和。我有3种可能性: {=SUM((MONTH(A1:A10)=
如何转换 Z-score来自 Z-distribution (standard normal distribution, Gaussian distribution)到 p-value ?我还没有找到
我正在重写一些 Javascript 代码以在 Excel VBA 中工作。由于在这个网站上搜索,我已经设法翻译了几乎所有的 Javascript 代码!但是,有些代码我无法准确理解它在做什么。这是一
我遇到过包含日期格式的时间戳日期的情况。然后我想构建一个图表,显示“点击”项目的数量“每天”, //array declaration $array1 = array("Date" => 0); $a
我是scala的新手! 我的问题是,是否有包含成员的案例类 myItem:Option[String] 当我构造类时,我需要将字符串内容包装在: Option("some string") 要么 So
我正在用 PHP 创建一个登录系统。我需要用户使用他或她的用户名或电子邮件或电话号码登录然后使用密码。因为我知道在 Java 中我们会像 email==user^ username == user 这
我在 C++ 项目上使用 sqlite,但是当我在具有文本值的列上使用 WHERE 时出现问题 我创建了一个 sqlite 数据库: CREATE TABLE User( id INTEGER
当构造函数是显式时,它不用于隐式转换。在给定的代码片段中,构造函数被标记为 explicit。那为什么在 foo obj1(10.25); 情况下它可以工作,而在 foo obj2=10.25; 情况
我知道这是一个主观问题,所以如果需要关闭它,我深表歉意,但我觉得它经常出现,让我想知道是否普遍偏爱一种形式而不是另一种形式。 显然,最好的答案是“重构代码,这样你就不需要测试是否存在错误”,但有时没有
这两个 jQuery 选择器有什么区别? 以下是来自 w3schools.com 的定义: [attribute~=value] 选择器选择带有特定属性,其值包含特定字符串。 [attribute*=
为什么我们需要CSS [attribute|=value] Selector根本当 CSS3 [attribute*=value] Selector基本上完成相同的事情,浏览器兼容性几乎相似?是否存在
我正在解决 regx 问题。我已经有一个像这样的 regx [0-9]*([.][0-9]{2})。这是 amont 格式验证。现在,通过此验证,我想包括不应提供 0 金额。比如 10 是有效的,但
我正在研究计算机科学 A 考试的样题,但无法弄清楚为什么以下问题的正确答案是正确的。 考虑以下方法。 public static void mystery(List nums) { for (
好的,我正在编写一个 Perl 程序,它有一个我收集的值的哈希值(完全在一个完全独立的程序中)并提供给这个 Perl 脚本。这个散列是 (string,string) 的散列。 我想通过 3 种方式对
我有一个表数据如下,来自不同的表。仅当第三列具有值“债务”并且第一列(日期)具有最大值时,我才想从第四列中获取最大值。最终值基于 MAX(DATE) 而不是 MAX(PRICE)。所以用简单的语言来说
我有一个奇怪的情况,只有错误状态保存到数据库中。当“状态”应该为 true 时,我的查询仍然执行 false。 我有具有此功能的 Controller public function change_a
我有一个交易表(针对所需列进行了简化): id client_id value 1 1 200 2 2 150 3 1
我是一名优秀的程序员,十分优秀!