图书馆:
library(ggplot2)
library(BlandAltmanLeh)
我正在尝试使用Bland Altman Plot。这是代码:
pl<-bland.altman.plot(A,B, graph.sys = "ggplot2")
如果我为A和B使用数值,它可以工作。但如果我填写如下内容:
pl<-bland.altman.plot(dataset[,c(2)],dataset[,c(3)], graph.sys = "ggplot2")
它给了我错误:
Error in bland.altman.stats: group1 is not numeric.
有没有办法使用特定列而不定义列名称我的解决方法是:
A<-dataset$ABI_0L
但是,我不想使用列名而是使用数字!有没有办法在不先定义A和B的情况下使用该功能?
也许我弄清楚了,也许不是最干净的方式,所以如果有人有更好的方法,请告诉我:)
pl<-bland.altman.plot(apply(datatest[,c(2)],2,as.numeric),apply(datatest[,c(3)],2,as.numeric), graph.sys = "ggplot2")
欢迎来到stackoverflow!
提前做一些事情:请提供可重复的数据并说明您正在使用的包裹。此外,在标题中更精确,因为在很多情况下,人们想知道如何在R中提取某些数据。
无论如何,使用您提供的代码对我来说很好:
library("BlandAltmanLeh")
set.seed(1)
dataset <- data.frame(matrix(rnorm(100*3), ncol= 3))
bland.altman.plot(dataset[,c(2)],dataset[,c(3)], graph.sys = "ggplot2")
编辑:
您不需要使用“c(2)”,因为它与单独的“2”相同。您的数据似乎不是数字。您可以使用
# make it numerics
dataset[, 2:3] <- apply(dataset[, 2:3],2,as.numeric)
# make a plot
bland.altman.plot(dataset[, 2],dataset[, 3], graph.sys = "ggplot2")
虽然你应该小心,因为它取决于第2列和第3列的类型。如果列是因素你应该看看qazxsw poi。