R - 如何将数据帧列添加为另一个数据帧的列?

时间:2018-01-18 17:29:03

标签: r dataframe merge

我有2个数据框,尺寸如下:

dim (df1)
[1] 1418    1

dim (df2)
[1] 1418    1

所以我每个DF只有1列,行数相同。我想将第二个数据框添加到第一个数据框,以便我有一个1418行和2列的调光。

我这样做了:

df1[,2] = df2[,1] # and this:
dfnew = merge (df1, df2)

但它不起作用。知道怎么做吗?

2 个答案:

答案 0 :(得分:2)

merge功能要求您在data.frame组合之间拥有共享列。在您的情况下,每个只有一列,但情况可能并非如此。

正如@Lyngbakr在评论中指出的那样,你想要使用cbind,它们将这两者结合在一起。例如,dfnew = cbind(df1,df2)

cbind适用于矢量,data.framedata.frame类似对象和矩阵。

答案 1 :(得分:1)

@RestController
public class AddressRepoAdditionals {
     @Autowired
     private AddressRepository repo;

     @RequestMapping("/additional/address/distictCities")
     public List<String> findDistinctCity() {
          return repo.findDistinctCity();
     }
 }

只要长度相同(由nrow(df1)= = nrow(df2)

隐含,这应该有效)

您还可以使用dplyr,它具有性能和链接的优点(并避免一些冗余语法)。两个选项:

df1$addl_col<-df2$col

虽然这对于dplyr来说有点不正统,正如引号的必要性所示。