在 R 中使用 ggpubr 包绘制相关测试时出错
Error when plotting correlation test using ggpubr package in R
这是我正在处理的数据集的一个示例,我正在 运行 变量 step
和 z
之间的皮尔逊相关性测试:
> head(datacorr)
Date & Time [Local] Latitude Longitude step x y z
1 2018-06-18 15:32:00 -2.436589 34.81398 4410.099 14 10 18.24621
2 2018-06-18 15:36:00 -2.438691 34.81222 4620.307 11 15 18.60108
3 2018-06-18 15:40:00 -2.438472 34.81164 4682.904 112 164 198.84468
4 2018-06-18 15:44:00 -2.437794 34.81141 4702.586 90 278 293.42787
5 2018-06-18 15:48:00 -2.437766 34.81177 4662.585 11 7 13.05272
6 2018-06-18 15:52:00 -2.437416 34.81284 4541.207 16 2 16.17849
我没有问题 运行 测试和创建基本 plot()
但我想使用包 ggpubr
中的 ggscatter()
进行更详细的可视化。
这是我的脚本及其输出:
> corre<-cor.test(datacorr$step, datacorr$z, method=c("pearson"))
> print(corre)
Pearson's product-moment correlation
data: datacorr$step and datacorr$z
t = -6.2382, df = 15021, p-value = 4.546e-10
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.06676964 -0.03487023
sample estimates:
cor
-0.0508329
> plot(datacorr$step,datacorr$z)
> step<-datacorr$step
> activityz<-datacorr$z
> library("ggpubr")
> ggscatter(datacorr, x = step, y = activityz,
+ add = "reg.line", conf.int = TRUE,
+ cor.coef = TRUE, cor.method = "pearson",
+ xlab = "Step Length", ylab = "Activity Z")
Error in .check_data(data, x, y, combine = combine | merge != "none") :
Can't find the y elements in the data.
我使用了基于另一个 post 的 ggscatter()
代码。有谁知道为什么我总是出错?我是 R 的新手,但在我看来我正确定义了所有参数。如果您有任何关于如何在 R 中可视化皮尔逊相关性测试(特征线、r 系数、p 值等)的替代方法,我愿意接受建议。
感谢任何帮助!
函数 ggscatter 文档中的示例显示您必须将 x
和 y
参数作为字符串传递。该文档还指出(作为对您上面评论的回答)您可以使用 add.params
来设计回归线。
试试这个:
ggscatter(datacorr, x = 'step', y = 'z',
color = 'red', # for the points
add = "reg.line",
add.params = list(color = "blue", fill = "lightgray"), # for the line
conf.int = TRUE,
cor.coef = TRUE, cor.method = "pearson",
xlab = "Step Length", ylab = "Activity Z")
使用数据:
datacorr <- read.table(text = "Date Time Latitude Longitude step x y z
1 2018-06-18 15:32:00 -2.436589 34.81398 4410.099 14 10 18.24621
2 2018-06-18 15:36:00 -2.438691 34.81222 4620.307 11 15 18.60108
3 2018-06-18 15:40:00 -2.438472 34.81164 4682.904 112 164 198.84468
4 2018-06-18 15:44:00 -2.437794 34.81141 4702.586 90 278 293.42787
5 2018-06-18 15:48:00 -2.437766 34.81177 4662.585 11 7 13.05272
6 2018-06-18 15:52:00 -2.437416 34.81284 4541.207 16 2 16.17849
", header = TRUE)
这是我正在处理的数据集的一个示例,我正在 运行 变量 step
和 z
之间的皮尔逊相关性测试:
> head(datacorr)
Date & Time [Local] Latitude Longitude step x y z
1 2018-06-18 15:32:00 -2.436589 34.81398 4410.099 14 10 18.24621
2 2018-06-18 15:36:00 -2.438691 34.81222 4620.307 11 15 18.60108
3 2018-06-18 15:40:00 -2.438472 34.81164 4682.904 112 164 198.84468
4 2018-06-18 15:44:00 -2.437794 34.81141 4702.586 90 278 293.42787
5 2018-06-18 15:48:00 -2.437766 34.81177 4662.585 11 7 13.05272
6 2018-06-18 15:52:00 -2.437416 34.81284 4541.207 16 2 16.17849
我没有问题 运行 测试和创建基本 plot()
但我想使用包 ggpubr
中的 ggscatter()
进行更详细的可视化。
这是我的脚本及其输出:
> corre<-cor.test(datacorr$step, datacorr$z, method=c("pearson"))
> print(corre)
Pearson's product-moment correlation
data: datacorr$step and datacorr$z
t = -6.2382, df = 15021, p-value = 4.546e-10
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.06676964 -0.03487023
sample estimates:
cor
-0.0508329
> plot(datacorr$step,datacorr$z)
> step<-datacorr$step
> activityz<-datacorr$z
> library("ggpubr")
> ggscatter(datacorr, x = step, y = activityz,
+ add = "reg.line", conf.int = TRUE,
+ cor.coef = TRUE, cor.method = "pearson",
+ xlab = "Step Length", ylab = "Activity Z")
Error in .check_data(data, x, y, combine = combine | merge != "none") :
Can't find the y elements in the data.
我使用了基于另一个 post 的 ggscatter()
代码。有谁知道为什么我总是出错?我是 R 的新手,但在我看来我正确定义了所有参数。如果您有任何关于如何在 R 中可视化皮尔逊相关性测试(特征线、r 系数、p 值等)的替代方法,我愿意接受建议。
感谢任何帮助!
函数 ggscatter 文档中的示例显示您必须将 x
和 y
参数作为字符串传递。该文档还指出(作为对您上面评论的回答)您可以使用 add.params
来设计回归线。
试试这个:
ggscatter(datacorr, x = 'step', y = 'z',
color = 'red', # for the points
add = "reg.line",
add.params = list(color = "blue", fill = "lightgray"), # for the line
conf.int = TRUE,
cor.coef = TRUE, cor.method = "pearson",
xlab = "Step Length", ylab = "Activity Z")
使用数据:
datacorr <- read.table(text = "Date Time Latitude Longitude step x y z
1 2018-06-18 15:32:00 -2.436589 34.81398 4410.099 14 10 18.24621
2 2018-06-18 15:36:00 -2.438691 34.81222 4620.307 11 15 18.60108
3 2018-06-18 15:40:00 -2.438472 34.81164 4682.904 112 164 198.84468
4 2018-06-18 15:44:00 -2.437794 34.81141 4702.586 90 278 293.42787
5 2018-06-18 15:48:00 -2.437766 34.81177 4662.585 11 7 13.05272
6 2018-06-18 15:52:00 -2.437416 34.81284 4541.207 16 2 16.17849
", header = TRUE)