0

我对 R(一般的计算机编程)非常陌生,并且正在从事生物信息学项目。我创建了一个 MySQL 数据库,并使用 RMySQL 连接到 R 中 MySQL 服务器中的该数据库。从这里我发出查询以从表中选择某个字段,获取此数据并将其放入 R 中的数据框,如下所示:

> rs = dbSendQuery(con, "select mastitis_no from experiment")
> data = fetch(rs, n=-1)
> data
   mastitis_no
1            5
2            2
3            8
4            6
5            2
....

> rt = dbSendQuery(con, "select BMSCC from experiment")
> datas = fetch(rt, n=-1)
> datas
   BMSCC
1  14536
2  10667
3  23455
4  17658
5  14999
....

> ru = dbSendQuery(con, "select cattle_hygiene_score_avg from experiment")
> dat = fetch(ru, n=-1)
> dat
   cattle_hygiene_score_avg
1                      1.89
2                      1.01
3                      1.21
4                      1.22
5                      1.93
....

我的前 2 个数据帧是整数,我的第三个数据帧是十进制格式。我可以对这些数据框进行简单的相关性测试,但无法运行详细的测试(或绘图),如下所示。

> cor(data, datas)
                BMSCC
mastitis_no 0.8303017
> cor.test(data, datas)
Error in cor.test.default(data, datas) : 'x' must be a numeric vector

因此,我使用通常的列表索引设备 $ 访问了这些数据帧中的数据,但是如下所述,十进制数据帧不起作用。

> data$mastitis
 [1] 5 2 8 6 2 0 5 6 7 3 0 1 0 3 2 2 0 5 2 1

> datas$BMSCC
 [1] 14536 10667 23455 17658 14999  5789 18234 22390 19069 13677 13536 11667 13455
[14] 17678 14099 15789  8234 21390 16069 13597

> dat$hygiene
NULL

通过这样做,我能够在前两个数据帧上执行 spearman 等级相关测试和散点图,但不能在十进制数据帧上执行。关于我需要做什么的任何建议?我确信答案很简单,但我找不到这个简单任务所需的编码。任何帮助将非常感激。

4

0 回答 0