dolbi
我是用mysql, MySQL-ODBC brige, RODBC的结构.
表table1中的, 列X1的数据类型是Blob,
y=sqlQuery(con,"select x1 from table1 where id=1")
y[1,1]显示的是二进制的数据.不是文本.怎么转换过来?还是我的设计本来就有问题了?
thanks in advance!!
rtist
dolbi
R-data好象没有这方面的说明啊.
急啊.
救救我吧. ~~~~
rtist
我更奇怪的是你为什么要用R处理binary data呢?
dolbi
其实是数据,但是太长了.我把数据放在了一起,用逗号分割的.用的时候然后分割开.主要是用前面的索引.有500M多.这样方便一点.
dolbi
我把这个字段改成longtext,结果只有前255个字符才有效的.
还是没找到办法
yihui
你把很多个逗号分割的数据放在一条记录的一个字段中了?
dolbi
是的.因为有1436个字段,都是一样的numeric
感谢谢老师关注
dolbi
我的表只有二个字段,一个是ID,一个是value.
value由1436个double组成,由逗号分割.
有近三万条记录.所以我在想按ID选择需要的纪录,然后用
as.numeric(unlist(strplit(value)))
解开.
rtist
[quote]引用第8楼dolbi于2007-07-18 04:17发表的“”:
我的表只有二个字段,一个是ID,一个是value.
value由1436个double组成,由逗号分割.
有近三万条记录.所以我在想按ID选择需要的纪录,然后用
as.numeric(unlist(strplit(value)))
解开.[/quote]
it doesn't seem to be a good idea...
is this table better than a simple txt file?
well, B-tree might be better in accessing data on drives.
what do you plan to do with the data?
rtist
to me, 30K x 1.5K is small enough to be handled directly in R. I'd rather not use db here.
once data are read in, it's no longer texts and should take much smaller memory than 500M, if most of your data are numeric.
dolbi
hehe,
i am using my pc. just 512M memeroy.
yihui
何必要这样存储数据呢,直接存为文本文件,用read.table()(你的情况用read.csv也好)读,不想全读进来的话,设定一下nrows(读进多少行)和skip(跳过多少行)就好了
dolbi
不是的。
我这样是必须的。我要遍历整个数据。有时候还要按查找其中的某些纪录。
我的工作已经用perl完成了。只好自己写数学函数。
我还是在想这个问题,blob这个二进制怎么转过来的,问题。
rtist
perl作parsing还是方便的。
我不知道R可不可以转过来,不过你已经说了,你的blob其实还是文本,而不是二进制的数据。
所以,重新设计一个数据库的表结构应该很容易就可以解决,也更容易和R互动。