根据R中的相似性向不同行上的列添加值

根据R中的相似性向不同行上的列添加值,r,R,我在R中有以下数据帧: 我正在尝试制作一个名为“反对”的额外专栏,我希望它是另一个具有相同的日期,地点,并且与边距相反的团队。我的预期产出是: 有人知道如何在R中实现这一点吗?我是新来的,不太懂。谢谢 假设您的数据帧名为dataset,然后 dataset %>% left_join(dataset %>% mutate(Margin=-Margin) %>% rename(Opposition=`Team A`),

我在R中有以下数据帧:

我正在尝试制作一个名为“反对”的额外专栏,我希望它是另一个具有相同的
日期
地点
,并且与
边距
相反的团队。我的预期产出是:


有人知道如何在R中实现这一点吗?我是新来的,不太懂。谢谢

假设您的数据帧名为
dataset
,然后

dataset %>%
  left_join(dataset %>% mutate(Margin=-Margin) %>%
              rename(Opposition=`Team A`),
            by=c("Team A", "Date", "Venue")
  )
会成功的。

请注意,
dplyr
程序包需要使用
mutate()、rename()、left_join()
函数,而
magrittr
程序包需要使用
%%
管道操作符。您可以通过导入
tidyverse
包一次导入两个包。

我们可以为每个
团队
日期
边距
的绝对值反转
团队A
的值

library(dplyr)

df %>%
  group_by(Venue, Date, tmp = abs(Margin)) %>%
  mutate(Opposition = rev(`Team A`)) %>%
  select(-tmp) -> result

result

使用
数据表

library(data.table)
setDT(df)[, Opposition := `Team A`[.N:1], .(Venue, Date, tmp = abs(Margin))]

带有
ave
+
rev
的基本R选项可能会有所帮助

transform(
  df,
  Opposition = ave(TeamA, Date, Venue, abs(Margin),FUN = rev)
)

我们无法从图像复制数据。以易于复制的可复制格式添加。读一下,谢谢!这起作用了,只需在小组中添加场地而不是团队作为第一个论点,非常感谢!你说得对。更新了答案,谢谢。谢谢,我先尝试了另一个选项,成功了!谢谢你的帮助!