R 如何拆分列并从中创建关系?

R 如何拆分列并从中创建关系?,r,dataframe,ggplot2,grouping,tidyverse,R,Dataframe,Ggplot2,Grouping,Tidyverse,我是一个自学的程序员,我是一个新手 我试图在向量中创建组之间的关系。 下面是我用来实现目标的代码 必须有一种更快或更普遍的方法来实现这一目标 library(tidyverse) mydf <- tibble(nums = seq(0,9, by = 1), ltrs = rep(c("a","b"), each = 5)) myspl <- split(mydf, mydf$ltrs) ltrsA <- myspl[["a"]]$ltrs

我是一个自学的程序员,我是一个新手

我试图在向量中创建组之间的关系。 下面是我用来实现目标的代码

必须有一种更快或更普遍的方法来实现这一目标

library(tidyverse)

mydf <- tibble(nums = seq(0,9, by = 1), 
               ltrs = rep(c("a","b"), each = 5))

myspl <- split(mydf, mydf$ltrs)

ltrsA <- myspl[["a"]]$ltrs
ltrsB <- myspl[["b"]]$ltrs

numsA <- myspl[["a"]]$nums
numsB <- myspl[["b"]]$nums

newdf <- tibble(numsA, ltrsA, numsB, ltrsB)
newdf

ggplot(newdf, aes(numsA, numsB)) + geom_point()
库(tidyverse)

mydf听起来像是来自
dplyr
bind\u cols
的任务

library(tidyverse)
mydf <- tibble(nums = seq(0,9, by = 1), 
               ltrs = rep(c("a","b"), each = 5))

myspl <- split(mydf, mydf$ltrs)

bind_cols(myspl)
# A tibble: 5 x 4
   nums  ltrs nums1 ltrs1
  <dbl> <chr> <dbl> <chr>
1     0     a     5     b
2     1     a     6     b
3     2     a     7     b
4     3     a     8     b
5     4     a     9     b
您也可以这样做:

library(tidyverse)

mydf %>%
  group_by(ltrs) %>%
  mutate(ID = 1:n()) %>%
  spread(ltrs, nums) %>%
  ggplot(aes(a, b)) + geom_point()
结果:

# A tibble: 5 x 3
     ID     a     b
* <int> <dbl> <dbl>
1     1     0     5
2     2     1     6
3     3     2     7
4     4     3     8
5     5     4     9
#一个tible:5 x 3
身份证
*   
1     1     0     5
2     2     1     6
3     3     2     7
4     4     3     8
5     5     4     9

newdf基本上是
do.call('cbind',myspl)
对吧?你的解决方案很有效!非常感谢。
# A tibble: 5 x 3
     ID     a     b
* <int> <dbl> <dbl>
1     1     0     5
2     2     1     6
3     3     2     7
4     4     3     8
5     5     4     9