R语言批量合并

Python017

R语言批量合并,第1张

容易遇到的问题:

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 匹配。此时,反馈的还是使用从上往下,第一个升序排列段的最后一个值。