我有一个包含67行和96列的数据框,其中我有重复的行名称,每个行的值从第48列变化,因此我需要为每一行运行相关性测试。这就是我的数据框架的样子,
Sample P1 P2 P3 P4 P5 F1 F2 F3 F4 F5
AS1_1 0.474181 0 2.541416 0.931405 3.679168 0.0442751 0.0582329 0.0399943 0.0397949 0.0389702
AS1_2 0.474181 0 2.541416 0.931405 3.679168 0.0648574 0.0733045 0.0599727 0.0542742 0.0795781
AS1_3 0.474181 0 2.541416 0.931405 3.679168 0.0418037 0.0447637 0.0329602 0.0366981 0.0391166
AS1_4 0.474181 0 2.541416 0.931405 3.679168 0.0842857 0.106061 0.0741478 0.0655408 0.0960092
RDA_1 0.426323 0.186972 0.371125 0.353353 0 0.183682 0.236717 0.204065 0.21347 0.158275
RDA_2 0.426323 0.186972 0.371125 0.353353 0 0.762271 0.157697 0.711849 0.773907 0.162249
RDA_3 0.426323 0.186972 0.371125 0.353353 0 0.65933 0.555187 0.716199 0.614248 0.134922
RDA_4 0.426323 0.186972 0.371125 0.353353 0 0.0757848 0.0806026 0.0850364 0.0956196 0.0527733
RDA_5 0.426323 0.186972 0.371125 0.353353 0 0.0505727 0.0709043 0.0481335 0.0389085 0.036532
例如AS1_ *和RDA_ *的行在第5列之前具有相同的值然后它是不同的,我需要找到第一列(P1..P5)5列与第二列之间每行的相关性(F1 ..F5)因为值不同以找到良好的相关性并绘制它。
到目前为止,我已经转换了数据框,我尝试使用R中的以下脚本,但它让我犯了错误,
x=read.table('df',sep='\t',header=T)
x=t(x)
for(gene in colnames(x))
{
gnamex <- paste0(gene,"_Beta")
gnamey <- paste0(gene,"_FPKM")
plot(x[,gnamex],x[,gnamey],main=paste0(gene,"\ncor= ",round(cor(x[,gnamex],x[,gnamey]), digits=3),"\np< ",round(cor.test(x[,gnamex],x[,gnamey])$p.value,digits=3)),xlab="Beta values",ylab="FPKM")
abline(lm(x[,gnamex]~x[,gnamey]), col="red")
lines(lowess(x[,gnamex],x[,gnamey]), col="blue")
}
但是它引发了我的错误信息。
Error in `[.data.frame`(x, , gnamex) : undefined columns selected
任何帮助或更好的解决方案都会非常棒,蟒蛇和R都值得赞赏
谢谢