容易遇到的问题:
1.在导入文件时,可能会出现第一列列名为“X.U.FEFF.xx”。这可能是文件类型或编码方式导致,本人解决方法是将csv(utf-8)文件另存为csv文件。“X.U.FEFF.xx”字样消除。
2.在数据合并时参数type=“full”容易导致数据合并不成功。
参考网站: http://blog.sina.com.cn/s/blog_46d621c00101l66x.html
如果空的地方用NA 表示的话,那么就可以用如下编码实现
假设 第一组数据是 a1 第二组数据是a2, 他们的行数是一致的!
index<- is.na(a1)a1[index] <- a2[index]
# here is a example
a1<-c(1,NA,3,NA,5,6,NA,8,9,10)
a1
a2<- 1:10
a2
length(a1)
length(a2)
index<-is.na(a1)
a1[index]<-a2[index]
a1
结果截图:
不知道是不是你想要的结果~
如果你能提供数据结构的话,我或许可以更加明确的提供方法!
这个可以通过VLOOKUP()语句来实现【VLOOKUP】
VLOOKUP用于在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值,其语法形式为:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 【按列(col)查找】
其中::
1、Lookup_value:表示要查找的值,它必须位于自定义查找区域的最左列。
Lookup_value 可以为数值、引用或文字串。
2、Table_array:查找的区域,用于查找数据的区域,上面的查找值必须位于这个区域的
最左列。可以使用对区域或区域名称的引用。
3、Row_index_num:为 table_array 中待返回的匹配值的行序号。
Row_index_num 为1 时,返回 table_array 第一行的数值;
row_index_num 为 2 时,返回 table_array 第二行的数值;
依次类推。
4、Col_index_num:为相对列号。最左列为1,其右边一列为2,依次类推。
5、Range_lookup:为一逻辑值,指明函数VLOOKUP 查找时是精确匹配,还是近似匹配。
Range_lookup为:FALSE ,VLOOKUP将只查找精确匹配值。
如果Table_array 的第一列中有两个或更多值与 lookup_value 匹配,
则使用第一个找到的值。如果找不到精确匹配值,则返回错误值 #N/A
Range_lookup为:TRUE 或被省略,则返回精确匹配值或近似
匹配值。如果找不到精确匹配值,则返回小于 lookup_value 的最大
值。并且,必须按升序排列 Table_array 第一列中的值;否则,
VLOOKUP 可能无法返回正确的值。
【TRUE 或被省略,返回的值有两种,因此,精确查找则选用参数FALSE。】
如果 Table_array 的第一列中有两个或更多值与 lookup_value 匹配,则使用从上往下,第一个升序排列段的最后一个值,如果排列段后面还有值与lookup_value 匹配。此时,反馈的还是使用从上往下,第一个升序排列段的最后一个值。