CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

30 July, 2024

Group by case where col A & col B = col B & col A, and then mutate column based on within-group similarity

 Programing Coderfunda     July 30, 2024     No comments   

I'm using R to format some data for a social network diagram that I'm visualizing in another program, and I'm looking for a way to designate whether edges are asymmetric or symmetric.


I've got data that look like this:
source target weight
1 C D 2
2 F E 0
3 G H 1
4 B A 2
5 H G 1
6 A B 2
7 E F 0
8 D C 2
9 J I 1
10 P O 4
11 M N 3
12 K L 0
13 N M 4
14 O P 1
15 I J 3
16 L K 2



I want to use dplyr to create a column "symmetry" where for every pair of columns in which the source and target of one row equal the target and source of a different row, it assesses whether the "weight" column is equal. If it is equal, the column "symmetry" should read "symmetrical", and if they are not equal, it should read "asymmetrical".


This is the output I want:
source target weight symmetry
1 C D 2 Symmetrical
2 F E 0 Symmetrical
3 G H 1 Symmetrical
4 B A 2 Symmetrical
5 H G 1 Symmetrical
6 A B 2 Symmetrical
7 E F 0 Symmetrical
8 D C 2 Symmetrical
9 J I 1 Asymmetrical
10 P O 4 Asymmetrical
11 M N 3 Asymmetrical
12 K L 0 Asymmetrical
13 N M 4 Asymmetrical
14 O P 1 Asymmetrical
15 I J 3 Asymmetrical
16 L K 2 Asymmetrical



I tried this:
df%
group_by(source=pmin(source,target),target=pmax(source,target)) %>%
mutate(symmetry=ifelse(n_distinct(weight)==1,"Symmetrical","Asymmetrical")) %>%
ungroup()



but found that when I looked at the resulting dataframe, there were a bunch of cases in which source==target, which should not be the case for any row. I'm struggling with both the group_by syntax and the mutate syntax.


My preference is to use dplyr for this task, but would welcome ideas using any other R packages as well! Thank you!
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook

Related Posts:

  • Building blocks of HTML Building blocks of HTMLAn HTML document consist of its basic building blocks which are:Tags: An HTML tag surrounds the content and apply meaning… Read More
  • HTML AttributeHTML AttributeHTML attributes are special words which provide additional information about the elements or attributes are the modifier of the HTML ele… Read More
  • HTML ElementsHTML ElementsAn HTML file is made of elements. These elements are responsible for creating web pages and define content in that webpage. An element in… Read More
  • HTML TagsHTML TagsHTML tags are like keywords which defines that how web browser will format and display the content. With the help of tags, a web browser can … Read More
  • Clang not generating debug info on -g flag 1 AnswerActive     Oldest  Votes5On Windows, Clang is not self-sufficient (at least not the official binaries). You need to … Read More
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh
    I had follow these steps to install an configure firebase to my cordova project for cloud messaging. https://medium.com/@felipepucinelli/how...
  • Step-by-step guide to linking gnuplot to Octave within Virtual Studio Code (VSC)
    I am aware of a number of previous questions (here, here and here for example) pointing out to the need to modify a file named .octaverc. ...
  • Log activity in a Laravel app with Spatie/Laravel-Activitylog
      Requirements This package needs PHP 8.1+ and Laravel 9.0 or higher. The latest version of this package needs PHP 8.2+ and Laravel 8 or hig...
  • Spring boot app (error: method getFirst()) failed to run at local machine, but can run on server
    The Spring boot app can run on the online server. Now, we want to replicate the same app at the local machine but the Spring boot jar file f...
  • SQL Tutorial
    SQL Tutorial SQL HOME SQL Intro SQL Syntax SQL Select SQL Select Distinct SQL Where SQL And, Or, Not SQL Order By SQL Insert Into SQL Null V...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh - 9/21/2024
  • pyspark XPath Query Returns Lists Omitting Missing Values Instead of Including None - 9/20/2024
  • SQL REPL from within Python/Sqlalchemy/Psychopg2 - 9/20/2024
  • MySql Explain with Tobias Petry - 9/20/2024
  • How to combine information from different devices into one common abstract virtual disk? [closed] - 9/20/2024

Laravel News

  • Name Queued Closures in Laravel 12.13 - 5/8/2025
  • Simplify HasManyThrough Relationships with Laravel's CanBeOneOfMany Support - 5/4/2025
  • Using Database Comments to Track Columns With Sensitive Data - 5/7/2025
  • Accelerate API Testing with Laravel's ddBody() Method - 5/4/2025
  • Managing Encrypted Environment Variables In Laravel With Veil - 5/5/2025

Copyright © 2025 CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda