Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 插入具有匹配值的列_R_Match - Fatal编程技术网

R 插入具有匹配值的列

R 插入具有匹配值的列,r,match,R,Match,我有两个数据帧。第一个是工作: Jobs <- data.frame(Company = c("A","B"), Name = c("Peter","Peter"), Job = c("CEO","Member of the Board")) Jobs您要执行的操作通常称为“连接”、“合并”或“附加”数据。如果你不能做到这一点,R就不会是一门很好的语言 匹配的字段称为“键”。在本例中,R假设您的密钥是公司,因为这是它们唯一的共同字段 Jobs <- data.frame(Compa

我有两个数据帧。第一个是工作:

Jobs <- data.frame(Company = c("A","B"), Name = c("Peter","Peter"), Job = c("CEO","Member of the Board"))

Jobs您要执行的操作通常称为“连接”、“合并”或“附加”数据。如果你不能做到这一点,R就不会是一门很好的语言

匹配的字段称为“键”。在本例中,R假设您的密钥是
公司
,因为这是它们唯一的共同字段

Jobs <- data.frame(Company = c("A","B"), Name = c("Peter","Peter"), Job = c("CEO","Member of the Board"))

Media_Appearence <- data.frame(Company = c("A","A","B","B","A","A","A","A"),Name = c("Peter","Peter","Peter","Peter","Peter","Peter","Peter","Peter"))

merge(Media_Appearence, Jobs)

您可能已经注意到,您的数据已为您排序。它是按默认键排序的,在本例中,默认键是
Company

您要做的通常称为“连接”、“合并”或“附加”数据。如果你不能做到这一点,R就不会是一门很好的语言

匹配的字段称为“键”。在本例中,R假设您的密钥是
公司
,因为这是它们唯一的共同字段

Jobs <- data.frame(Company = c("A","B"), Name = c("Peter","Peter"), Job = c("CEO","Member of the Board"))

Media_Appearence <- data.frame(Company = c("A","A","B","B","A","A","A","A"),Name = c("Peter","Peter","Peter","Peter","Peter","Peter","Peter","Peter"))

merge(Media_Appearence, Jobs)

您可能已经注意到,您的数据已为您排序。它是按默认键排序的,在本例中,默认键是
Company

使用match不会更改data.frame的原始顺序

Media_Appearence$Job=Jobs$Job[match(Media_Appearence$Company, Jobs$Company)]
Media_Appearence
  Company  Name                 Job
1       A Peter                 CEO
2       A Peter                 CEO
3       B Peter Member of the Board
4       B Peter Member of the Board
5       A Peter                 CEO
6       A Peter                 CEO
7       A Peter                 CEO
8       A Peter                 CEO

通过使用match,将不会更改data.frame的原始顺序

Media_Appearence$Job=Jobs$Job[match(Media_Appearence$Company, Jobs$Company)]
Media_Appearence
  Company  Name                 Job
1       A Peter                 CEO
2       A Peter                 CEO
3       B Peter Member of the Board
4       B Peter Member of the Board
5       A Peter                 CEO
6       A Peter                 CEO
7       A Peter                 CEO
8       A Peter                 CEO

我注意到你问的任何问题都没有接受任何答案。虽然接受答案不是强制性的,但如果其中一个答案对您有效,那么接受答案被认为是良好的做法。这将为未来的读者提供有关解决方案价值的线索。另请参阅此帮助页:我将对它们进行标记,tksI注意到您没有接受任何问题的答案。虽然接受答案不是强制性的,但如果其中一个答案对您有效,那么接受答案被认为是良好的做法。这将为未来的读者提供有关解决方案价值的线索。另请参见此帮助页:我将标记它们,TKST这是另一个好方法。我想知道列名是否有Peter以外的其他名称。这会起作用。@Malakia我通常要做的是将多个列粘贴到一个列中,用于您的案例,Jobs['New']=paste(Jobs$Company,Jobs$name)这是另一个好方法。我想知道列名是否有Peter以外的其他名称。它会起作用。@Malakia我通常做的是将多个列粘贴到一个列上,用于您的案例,Jobs['New']=paste(Jobs$Company,Jobs$name)
Media_Appearence$Job=Jobs$Job[match(Media_Appearence$Company, Jobs$Company)]
Media_Appearence
  Company  Name                 Job
1       A Peter                 CEO
2       A Peter                 CEO
3       B Peter Member of the Board
4       B Peter Member of the Board
5       A Peter                 CEO
6       A Peter                 CEO
7       A Peter                 CEO
8       A Peter                 CEO