如何在R中没有排列的情况下执行DF的两列的交互?

安德烈·科斯塔

我在 R 中有一个 data.frame,它具有区域对的值。可以使用以下代码构造第一列:

region.1 <- c("SE", "SE", "SW", "S", "SW")
region.2 <- c("SW",  "S", "SE", "SE", "SE")
x <- c(1,2,3,4,5)
y <- c(1,3,2,4,1)

df <- data.frame(x,y,region.1,region.2)

我想为每对区域绘制一个具有不同颜色的图,所以我尝试过

ggplot(data=df, aes(x=x, y=y))+
    geom_point(size=5,aes(color=interaction(region.1,region.2)))

然而,一旦考虑了相同交互的排列,结果并不是我所期望的。

在此处输入图片说明

如图所示,例如有组 SW.SE 和 SE.SW。

我想问一下,我怎样才能以一种智能的方式制作没有排列的对组。

卡米尔

这里有两个dplyr基于选项。两者都涉及对每个 (x,y) 对的两个区域的值进行排序。第一个用于mutate粘贴排序的值,使用rowwise. 第二个用于gather制作单列区域,按 (x,y) 对排列,然后summarise将区域粘贴在一起。

library(tidyverse)
region.1 <- c("SE", "SE", "SW", "S", "SW")
region.2 <- c("SW",  "S", "SE", "SE", "SE")
x <- c(1,2,3,4,5)
y <- c(1,3,2,4,1)

df <- data.frame(x,y,region.1,region.2)

df_interact1 <- df %>%
  mutate_if(is.factor, as.character) %>%
  rowwise() %>% 
  mutate(interact = sort(c(region.1, region.2)) %>% paste(., collapse = ".")) %>%
  ungroup()


df_interact1
#> # A tibble: 5 x 5
#>       x     y region.1 region.2 interact
#>   <dbl> <dbl> <chr>    <chr>    <chr>   
#> 1     1     1 SE       SW       SE.SW   
#> 2     2     3 SE       S        S.SE    
#> 3     3     2 SW       SE       SE.SW   
#> 4     4     4 S        SE       S.SE    
#> 5     5     1 SW       SE       SE.SW

ggplot(df_interact1, aes(x = x, y = y, color = interact)) +
  geom_point(size = 5)

df_interact2 <- df %>%
  gather(key = region, value = value, region.1, region.2) %>%
  group_by(x, y) %>%
  arrange(value) %>%
  summarise(interact = paste(min(value), max(value), sep = ".")) %>%
  ungroup()

df_interact2
#> # A tibble: 5 x 3
#>       x     y interact
#>   <dbl> <dbl> <chr>   
#> 1     1     1 SE.SW   
#> 2     2     3 S.SE    
#> 3     3     2 SE.SW   
#> 4     4     4 S.SE    
#> 5     5     1 SE.SW

ggplot(df_interact2, aes(x = x, y = y, color = interact)) +
  geom_point(size = 5)

reprex 包(v0.2.0)于 2018 年 5 月 22 日创建

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在没有两个查询的情况下如何在Knex中执行此操作

来自分类Dev

如何在没有sudo的情况下执行'iftop'

来自分类Dev

如何在没有警告的情况下执行resolvconf?

来自分类Dev

在Java中,如何在没有完整路径的情况下执行外部应用

来自分类Dev

如何在Shell脚本中没有“ awk”的情况下执行此操作

来自分类Dev

如何在R中没有重复的情况下将所有列配对一次?

来自分类Dev

Android中如何在没有用户交互的情况下务实地接听接收方电话

来自分类Dev

在没有用户交互的情况下,如何更新R Shiny中与`fileInput`变量相关的文件?

来自分类Dev

如何在没有用户交互的情况下以编程方式构建VI?

来自分类Dev

如何在没有用户交互的情况下初始化全屏

来自分类Dev

如何在没有用户交互的情况下安装Microsoft Edge扩展?

来自分类Dev

如何在有条件的情况下减去熊猫中的两列

来自分类Dev

如何在没有列名或行名的情况下选择熊猫中的列和行?

来自分类Dev

在Microsoft Excel中,如何在没有额外列的情况下获取vlookup值数组?

来自分类Dev

如何在没有列名的情况下更改 Pandas 中的列类型?

来自分类Dev

如何在没有太多循环的情况下删除多列中的重复行?

来自分类Dev

Postgres 10 sql 如何在没有所有列的情况下执行不同的操作

来自分类Dev

如何在R中没有列名称的情况下获得矩阵元素?

来自分类Dev

如何在R中没有网站无效的情况下进行网络抓取?

来自分类Dev

如何在R中没有“填充”的情况下创建条形图?

来自分类Dev

如何在R中没有未选择数据的情况下绘制子集数据

来自分类Dev

如何在R中没有for循环的情况下创建条件整数序列的组合?

来自分类Dev

在没有.then()的情况下执行两个函数

来自分类Dev

如何在没有执行权限的情况下执行文件

来自分类Dev

如何在Swift中在没有代码重复的情况下实现具有相同内容的两个init?

来自分类Dev

Django 中的两个表单-如何在没有所有字段的情况下使表单可提交?

来自分类Dev

如何在不执行两次SQL调用的情况下计算SQL列中特定值出现的次数

来自分类Dev

如何在没有for循环的情况下对两个矩阵的每一列进行快速矩阵乘法?

来自分类Dev

如何在没有for循环的情况下执行此操作

Related 相关文章

  1. 1

    在没有两个查询的情况下如何在Knex中执行此操作

  2. 2

    如何在没有sudo的情况下执行'iftop'

  3. 3

    如何在没有警告的情况下执行resolvconf?

  4. 4

    在Java中,如何在没有完整路径的情况下执行外部应用

  5. 5

    如何在Shell脚本中没有“ awk”的情况下执行此操作

  6. 6

    如何在R中没有重复的情况下将所有列配对一次?

  7. 7

    Android中如何在没有用户交互的情况下务实地接听接收方电话

  8. 8

    在没有用户交互的情况下,如何更新R Shiny中与`fileInput`变量相关的文件?

  9. 9

    如何在没有用户交互的情况下以编程方式构建VI?

  10. 10

    如何在没有用户交互的情况下初始化全屏

  11. 11

    如何在没有用户交互的情况下安装Microsoft Edge扩展?

  12. 12

    如何在有条件的情况下减去熊猫中的两列

  13. 13

    如何在没有列名或行名的情况下选择熊猫中的列和行?

  14. 14

    在Microsoft Excel中,如何在没有额外列的情况下获取vlookup值数组?

  15. 15

    如何在没有列名的情况下更改 Pandas 中的列类型?

  16. 16

    如何在没有太多循环的情况下删除多列中的重复行?

  17. 17

    Postgres 10 sql 如何在没有所有列的情况下执行不同的操作

  18. 18

    如何在R中没有列名称的情况下获得矩阵元素?

  19. 19

    如何在R中没有网站无效的情况下进行网络抓取?

  20. 20

    如何在R中没有“填充”的情况下创建条形图?

  21. 21

    如何在R中没有未选择数据的情况下绘制子集数据

  22. 22

    如何在R中没有for循环的情况下创建条件整数序列的组合?

  23. 23

    在没有.then()的情况下执行两个函数

  24. 24

    如何在没有执行权限的情况下执行文件

  25. 25

    如何在Swift中在没有代码重复的情况下实现具有相同内容的两个init?

  26. 26

    Django 中的两个表单-如何在没有所有字段的情况下使表单可提交?

  27. 27

    如何在不执行两次SQL调用的情况下计算SQL列中特定值出现的次数

  28. 28

    如何在没有for循环的情况下对两个矩阵的每一列进行快速矩阵乘法?

  29. 29

    如何在没有for循环的情况下执行此操作

热门标签

归档