根据R中的相似性向不同行上的列添加值
我在R中有以下数据帧: 我正在尝试制作一个名为“反对”的额外专栏,我希望它是另一个具有相同的根据R中的相似性向不同行上的列添加值,r,R,我在R中有以下数据帧: 我正在尝试制作一个名为“反对”的额外专栏,我希望它是另一个具有相同的日期,地点,并且与边距相反的团队。我的预期产出是: 有人知道如何在R中实现这一点吗?我是新来的,不太懂。谢谢 假设您的数据帧名为dataset,然后 dataset %>% left_join(dataset %>% mutate(Margin=-Margin) %>% rename(Opposition=`Team A`),
日期
,地点
,并且与边距
相反的团队。我的预期产出是:
有人知道如何在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)
)
我们无法从图像复制数据。以易于复制的可复制格式添加。读一下,谢谢!这起作用了,只需在小组中添加场地而不是团队作为第一个论点,非常感谢!你说得对。更新了答案,谢谢。谢谢,我先尝试了另一个选项,成功了!谢谢你的帮助!