r - r 创建与另一列分组的行元素匹配的新数据框
问题描述
我想从df
下面的数据框中创建一个新的数据框。在新的数据df2
框(df$name
df$name
df$group
df <- data.frame(group = rep(letters[1:2], each=3),
name = LETTERS[1:6])
> df
group name
1 a A
2 a B
3 a C
4 b D
5 b E
6 b F
在此示例中,“A”、“B”和“C”df$name
属于“a”中df$group
,我想将它们放在新数据框中的同一行中。所需的输出如下所示:
> df2
V1 V2
1 A B
2 A C
3 B A
4 B C
5 C A
6 C B
7 D E
8 D F
9 E D
10 E F
11 F D
12 F E
解决方案
我们可以这样base R
做merge
out <- setNames(subset(merge(df, df, by.x = 'group', by.y = 'group'),
name.x != name.y, select = -group), c("V1", "V2"))
row.names(out) <- NULL
out
# V1 V2
#1 A B
#2 A C
#3 B A
#4 B C
#5 C A
#6 C B
#7 D E
#8 D F
#9 E D
#10 E F
#11 F D
#12 F E
推荐阅读
- angular - 如何知道子路由是否已经渲染(来自父组件)
- drupal-8 - 是否可以使用 .yaml 文件创建/管理角色?
- javascript - 量角器自定义定位器无法定位元素
- javascript - 为什么if语句会在while循环中阻塞?
- javascript - 如何使用从 Nodejs 中的 1 个函数返回的数组?
- javascript - 传递 axios 数据到视图模板
- bash - 将字符串添加到bash中的列
- xojo - 更改列表框单元格的背景颜色
- php - 在 PHP 中添加“插入”查询的位置
- python-3.x - 为什么写入文件二进制方法有时会返回一个字母和其他一个十六进制?