从R中的数据帧中提取数据

时间:2014-04-27 20:55:31

标签: mysql r dataframe rmysql

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

> 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

因此,我使用通常的列表idexing设备$访问这些数据帧内的数据,但是十进制数据帧不能正常工作。

> 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等级相关性测试和散点图,但不能对十进制数据帧执行散点图。关于我需要做什么的任何建议?我确信答案很简单,但我找不到这个简单任务所需的编码。任何帮助将不胜感激。

0 个答案:

没有答案