将具有不同长度的2个向量合并到数据帧中

时间:2017-05-18 15:02:32

标签: r vector dataframe merge sql-server-2016

我不得不说我半小时前才开始使用R,从SQL Server运行R脚本,所以我称之为完整的菜鸟。

我试图将两个R矢量合并到一个数据帧中,但我的问题是矢量的长度不同。

我不确定是否可以这样做,虽然我不一定明白为什么不这样做?

我的R脚本是:

n <- c(2, 3, 5, 6);
s = c("aa", "bb", "cc");
df = data.frame(n, s);

我得到的错误是:

  

data.frame(n,s)出错:参数意味着数量不同   行:4,3个电话:来源 - &gt; withVisible - &gt; eval - &gt; eval - &gt; data.frame

     

ScaleR出错。检查输出以获取更多信息。错误   eval(expr,envir,enclos):ScaleR中的错误。检查输出   更多信息。电话:来源 - &gt; withVisible - &gt; eval - &gt; eval - &gt;   .Call Execution停止了

基本上我想象的是生成类似于LEFT JOIN的结果集。

2    aa
3    bb
5    cc
6    NULL

我问自己是否应该指定一个&#34;替换NULL&#34; R数据框中的值,但我不确定这是否是一个解决方案。

1 个答案:

答案 0 :(得分:2)

这个可能:

sq <- seq(max(length(n), length(s)))
data.frame(n[sq], s[sq])

#  n.sq. s.sq.
#1     2    aa
#2     3    bb
#3     5    cc
#4     6  <NA>