基于R中其他列的值生成新列

基于R中其他列的值生成新列,r,filter,dplyr,mutate,R,Filter,Dplyr,Mutate,我有下表: | | Red | Green | Blue | Yellow | Brown | Purple | Black | | --- | --- | --- | --- | --- | --- | --- | --- | | Apple | A | B | D | D | C | F | E | | Pear | A | B | C | B | C | F | B | | Orange | A | B | C | B | C | F | B | | Strawberry | A | C

我有下表:

|  | Red | Green | Blue | Yellow | Brown | Purple | Black |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Apple | A | B | D | D | C | F | E |
| Pear | A | B | C | B | C | F | B |
| Orange | A | B | C | B | C | F | B |
| Strawberry | A | C | D | D | C | F | D |
| Lemon | E | C | D | D | C | F | D |
基于与此类似的样本数据:

输入数据

ID Colour Fruit
1 Red Apple
2 Red Orange
3 Green Lemon
4 Brown Strawberry
...
1000 Brown Strawberry
ID Colour Fruit Group
1 Red Apple A
2 Red Orange A
3 Green Lemon C
4 Brown Strawberry F
...
1000 Brown Strawberry F
我想在输入数据中生成一个额外的列(组),该列表示上表中的值,因此输出如下所示:

输出数据

ID Colour Fruit
1 Red Apple
2 Red Orange
3 Green Lemon
4 Brown Strawberry
...
1000 Brown Strawberry
ID Colour Fruit Group
1 Red Apple A
2 Red Orange A
3 Green Lemon C
4 Brown Strawberry F
...
1000 Brown Strawberry F
我看到了这个问题:,它是对我的示例的过度简化,使用了ifelse()语句

是否有另一种方法可以对数千行和可能的配对组合执行此操作,而这些组合不是扩展的ifelse()语句


dplyr包具有mutate和filter函数,但我不确定如何在本例中组合它们。

您应该使用我建议的早期方法。实际上,excel类型查找是通过
dplyr
joins在R中执行的

餐桌水果红绿色蓝色黄色棕色紫色黑色
#>1苹果A B D D C F E
#>2梨A B C B C F B
#>3橙色A B C C F B
#>4草莓A C D D C F D
#>5柠檬E C D D C F D
颜色2黄橙色
#>3黑柠檬
#>4红苹果
#>5个绿梨
#>棕橙色
图书馆(dplyr)
图书馆(tidyr)
输出%left\u join(表%>%pivot\u更长(!Fruit,names\u to=“Color”,values\u to='Code'))
#>连接,通过=c(“颜色”、“水果”)
头(输出)
#>ID颜色水果代码
#>1 1红柠檬E
#>2黄橙色B
#>3黑柠檬D
#>红苹果A
#>5绿梨B
#>6棕橙C
尾部(输出)
#>ID颜色水果代码
#>995995蓝橙色C
#>996 996红色橙色A
#>997997黄梨B
#>998 998红苹果A
#>999 999蓝梨C
#>1000紫苹果F

由(v2.0.0)于2021-04-30创建。

给定数据表中的条目数因各行而异,例如,草莓行包含6个条目,而其他行包含7个条目。您能以适当的格式提供样本数据吗?表格已更正,因此所有行都有7个条目。这不符合您的目的吗??我制定的例子和你们分享的完全一样!!