【问题标题】:R: Conditionally duplicating data from columns into rowsR:有条件地将数据从列复制到行
【发布时间】:2020-01-29 02:43:23
【问题描述】:

我正在尝试插入新行,这些新行会复制行中包含的某些数据,但第一列将是从 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

我找到了一些创建类似内容的资源,最好的资源是这个先前提出的问题,但它并没有完全满足我的需要,或者老实说我可能误用了它 (conditionally duplicating rows in a data frame) .我认为我可以在删除“To”列并将“From”重命名为“Node.Name”的同时创建相同的内容,但我创建了重复数据,插入了每行的六个副本,同时还错误地将注释应用到了错误的连接。

如果有任何帮助,我将不胜感激!我对 R 很陌生并且是自学成才的,所以如果你有一个解决方案或资源,我可以学习这个解决方案,那也很棒。谢谢!

编辑:发现了一个我以前没有见过的类似问题,所以我在这里添加它以防其他人发现这个并可以引用它们:Create network files from "classic" dataframe in R - igraph

【问题讨论】:

    标签: r duplicates tableau-api


    【解决方案1】:

    这是一个从宽到长的转换,可以使用 reshape2 包中的 melt 完成。做:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      • 2018-08-14
      • 2023-03-07
      • 2018-08-17
      • 1970-01-01
      • 2017-05-07
      • 2021-06-13
      相关资源
      最近更新 更多