处理数据需要,所以写了个小函数,运行也不报错,就是结果死活不对,只好一步一步的找,然后终于发现了问题所在。
需求是这样的,把一堆数据用filter按条件过滤分别保存为不同的数据集,然后写了个for循环去summary,当然,一定是有办法不写这个for的,但是菜嘛,能用for解决的,就不去考虑其他的优美方式了。
问题出在for循环内,用了一个paste函数去连接字符串,构造出数据集的名字,好作为summary的参数。前面都对,summary就是没有结果。在命令行里试了一下,发现问题出在paste里,我用paste(“aaa”,i,sep)的形式连接出来的字符串,带有双引号,导致summary的时候出不了结果,把双引号去掉,结果就出来了。
问题是找到了,怎么解决又成了新问题,查了一下paste函数,没找到参数可以控制是否输出双引号,依稀记得以前也遇到过类似问题,搜了一下,发现是以前用write.csv函数的时候,可以用quote=FALSE来控制是否写入引号,依样画葫芦用到paste里却得到了一个意外的结果。
再次搜索,终于找到可以用get(paste("aa",i,sep)),马上就得到正确的结果。
解决了参数问题,我想把某些suammry的结果横向拼接到一起,自然用cbind函数,但是原来一直只会cbind(a,b),怎么拼接七八个数据呢,不能cbind(a,cbind(b,cbind(d,.....)))吧,又是搜索了半天,原来直接cbind(a,b,c,d...)即可。
真是菜鸟限制了想象力!
两三个小时才搞定这些个小问题,是以为记!