我有多个csv文件,这些文件包含一些相同的列以及不同的列。 例如,
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="post" action="#">
<b>Airport:</b>
<select size="1" name="arrivalairport" id="airport">
<option value="">Airport 1</option>
<option value="">Airport 2</option>
<option value="">Airport 3</option>
</select>
<p>
<b># Passengers:</b>
<input type="number" name="arrivalnrpass" id="arrivalnrpass" size="3">
<p>
<b>Babyseat:</b>
<input type="number" name="arrivalbaby" id="arrivalbaby" size="3">
<p>
<b>Price:</b>
<input type="number" name="arrivalprice" id="arrivalprice" size="5"> €
<p>
<input class="button" type="submit" value="Add" name="action">
</form>
我尝试基于相同的列组合这些文件,但对于那些不同的列,我只是 包括所有列,但用NA填充单元格(对于那些没有该列的数据)。
所以我希望看到:
#1st.csv
col1,col2
1,2
#2nd.csv
col1,col3,col4
1,2,3
#3rd.csv
col1,col2,col3,col5
1,2,3,4
这是我给出的r代码,但它返回一条错误消息
col1,col2,col3,col4,col5
1,2,NA,NA,NA #this is 1st.csv
1,NA,2,3,NA #this is 2nd.csv
1,2,3,NA,4 #this is 3rd.csv
有没有人知道任何替代或优雅的方式来获得预期的结果?
R版本是3.3.2。
答案 0 :(得分:2)
您应该可以使用bind_rows
dplyr
功能完成此操作
df1 <- read.csv(text = "col1, col2
1,2", header = TRUE)
df2 <- read.csv(text = "col1, col3, col4
1,2,3", header = TRUE)
df3 <- read.csv(text = "col1, col2, col3, col5
1,2,3,4", header = TRUE)
library(dplyr)
res <- bind_rows(df1, df2, df3)
> res
col1 col2 col3 col4 col5
1 1 2 NA NA NA
2 1 NA 2 3 NA
3 1 2 3 NA 4