R:有条件地将数据从列复制到行

时间:2019-12-16 19:48:14

标签: r duplicates tableau

我正在尝试插入新行,这些行将复制该行中包含的某些数据,但第一列将是从R中现有列插入的唯一数据。

我正在尝试设置此数据以在Tableau中使用,并创建网络可视化。我不希望我的客户输入数据来插入大量重复数据以创建此可视化效果。

我当前的数据如下:

            Connection.ID     From             To              Note
  1         1                 Niamh MacCallum  James Fraser    Niamh and James are coworkers
  2         2                 James Fraser     Simon David     James and Simon are brothers
  3         3                 Niamh MacCallum  Tom Ashton      Niamh recruited Tom to join her organization

这是我创建的一些伪造数据,用于复制公司数据,但目标是能够可视化员工与他们遇到的客户/志愿者之间的联系,并与他们建立专业关系。

我希望我的数据看起来像这样,我将其导出到一个csv中:

            Connection.ID     Node.Name        Notes
  1         1                 Niamh MacCallum  Niamh and James are coworkers
  2         1                 James Fraser     Niamh and James are coworkers
  3         2                 James Fraser     James and Simon are brothers
  4         2                 Simon David      James and Simon are brothers     
  5         3                 Niamh MacCallum  Niamh recruited Tom to join her organization
  6         3                 Tom Ashton       Niamh recruited Tom to join her organization

我发现了一些资源可以创建类似的内容,最好的资源是这个先前提出的问题,但是并不能完全满足我的需要,或者说实话我可能会错误地使用它({{3} }。我以为可以在删除“至”列并将“从”重命名为“ Node.Name”的同时创建相同的东西,但是我创建了重复的数据,该数据插入了每行的六个副本,同时还错误地将注释应用于错误的连接。

我将不胜感激!我对R还是很陌生,并且自学成才,因此,如果您有解决方案或资源,在这里我可以学习到解决方案,那也很好。谢谢!

1 个答案:

答案 0 :(得分:0)

这是一个广泛到长期的转变,可以使用melt包中的reshape2完成。做:

df2 = melt(data = df, 
           id.vars = c("Connection.ID","Note"), 
           measure.vars = c("From","To"), 
           variable.name = 'From_To',
           value.name = "Node.Name" )

# Remove the unwanted From_To column
df2$From_To = NULL

结果:

> df2
  Connection.ID                                             Note       Node.Name
1             1                    Niamh and James are coworkers Niamh MacCallum
2             2                     James and Simon are brothers    James Fraser
3             3     Niamh recruited Tom to join her organization Niamh MacCallum
4             1                    Niamh and James are coworkers    James Fraser
5             2                     James and Simon are brothers     Simon David
6             3     Niamh recruited Tom to join her organization      Tom Ashton