这里谈不上数据预处理方法,只是数据的导入、导出,以及格式的转换、(一或多个)分隔符等相关问题
1. 一条样本/记录中含有多个分隔符的处理方法:
(1). 对于小数据集一个有效的方法是:
① 将有多个分隔符的数据 复制 到word文章,将多个分隔符转化为同一个分隔符;
② 开始 ---> 查找替换 ---> 替换 ---> 查找内容(如果是空格,直接按一下空格键;如果是制表符等需要使用“特殊字符”选项)
③ 然后将修改后只含有一个分隔符的数据,保存到txt文件(或其它文件格式),然后导入数据库or其它文件格式;
(2). 对于大数据集,目前还没有良策,待查.....
2. R中,如果提示"错误于if(...) {: 需要TRUE/FALSE的地方不可以用缺少值",
解释错误:if(condition),其中condition处只能是TRUE/FALSE,不能是其它值,由于参与逻辑运算符的变量,存在缺失值NA,导致了condition出现了NA,才会提示错误;
出现错误的可能:① 参与计算的数据存在缺失值;② 参与运算的向量/矩阵/数组, 下标出界;
解决方案:详细检查数据是否存在缺失值,进行弥补,可能是由于导数导入的问题;插入必要的print语句,检查下标出界问题;
3. MySQL导入外部数据时,通常会出现最后一行数据不完整问题,可能原因是“光标没有回车到数据的下一行”,停留在了数据的最后一行最后一个字符的后面。如果是这样很可能会造成数据导入不完整;warning:数据导入后,一定要检查是否存在错误,不完整,缺失值问题
4. R中,将数据集中record/example的原本顺序打乱,如何实现?sample()
在数据处理or验证数据中record顺序对算法的影响时,需要将使用随机数生成函数,将原本数据打乱,R中可使用example()函数:
x <- 1:10
sample(x) --- > 8 3 2 6 9 10 4 5 1 7 (生成x内的数的乱序)
sample(c(0,1), 100, replace=TRUE) ---> 生成100个0和1的数(伯努利抽样)
sample(x, size, replace = FALSE, prob = NULL) # x为含1个or多个元素的容器,size表示从x中随机抽取数,replace表示是否放回(可重复)
sample.int(n, size =n, replace = FALSE, prob = NULL); n表示可以抽取的是1:n中的数,size表示抽取的个数,replace表示是否放回;
详细请 ?sample