将性别变量分配给新列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将性别变量分配给新列相关的知识,希望对你有一定的参考价值。

我有一个与R相关的noob问题。我有以下数据表:

Receiver_id   Sender_id    Gender_receiver
1             2             Male
2             3             Female
3             4             Male
4             2             Female
5             3             Female

receiver_id表示接收消息的人的id_number,而inviter_id表示发送消息的人的id_number。在这种情况下,人2向人发送内容1. gender_receiver指的是接收者的性别。但是,基于此,应该可以通过创建名为Gender_sender的新列来指示发件人的性别。不幸的是,我无法这样做。我使用了以下代码但没有任何成功:

  dt[, Gender_sender := dt$Gender_receiver, by=Sender_id]

我没有得到正确的性别分配。

有人知道我应该做什么,我认为它相对简单,但我无法弄清楚。

在此先感谢,阿曼达

答案

您需要将性别与发件人ID匹配:

dt[, Gender_sender:=Gender_receiver[match(Sender_id, Receiver_id)]]
dt
#   Receiver_id Sender_id Gender_receiver Gender_sender
#1:           1         2            Male        Female
#2:           2         3          Female          Male
#3:           3         4            Male        Female
#4:           4         2          Female        Female
#5:           5         3          Female          Male

以上是关于将性别变量分配给新列的主要内容,如果未能解决你的问题,请参考以下文章

如何以最有效的方式将运动员的名字分配给新列“名字”? [复制]

Pandas 重新索引并将列分配给新列

R中有没有办法创建一个新列,根据其他列分配值? [复制]

IDEA:“将语句分配给新的局部变量”?

分配给新变量后如何测试道具

如何将具有值的新列添加到现有数据表?