R通过结合两个变量的公数值来重塑数据 [英] R Reshape data by combining common value of two variables

查看:71
本文介绍了R通过结合两个变量的公数值来重塑数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过合并两个变量来重塑数据框. 例如:

I want to reshape a data frame by combining two variables. For example:

这是一个新数据:

    dat = data.frame(
    var1 = c("a", "a", "a", "Emily", "b", "Bob", "c"),
    var2 = c("Jhon", "Emily", "Julie", "Angela", "Bob", "Paul", "Paul"),
    stringsAsFactors = F
)

例外的输出:

  #   var1   var2   var3   var4   var5 
  # 1    a   Jhon  Emily  Julie Angela
  # 2    b    Bob   Paul      c   <NA>

推荐答案

使用基数R,您可以执行以下操作:

Using base R you can do:

relation=function(dat){

 .relation=function(x){
    k = unique(sort(c(dat[dat[, 1] %in% x, 2], x, dat[dat[, 2] %in% x, 1])))
    if(setequal(x,k)) toString(k) else .relation(k)}

  grp = sapply(unique(dat[,1]), .relation)
  read.table(text = unique(grp), fill=T, sep=",")
}

relation(dat)
  V1      V2     V3    V4     V5
1  a  Angela  Emily  Jhon  Julie
2  b     Bob      c  Paul   

这篇关于R通过结合两个变量的公数值来重塑数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆