gpt4 book ai didi

r - 如何从列的其余部分中减去列的子集

转载 作者:行者123 更新时间:2023-12-02 09:07:51 25 4
gpt4 key购买 nike

我有一个数据框,其中包含我工作的 3 个重要变量。变量是 CountryName、year 和 Idealpoint。我想做的是找出特定年份美国和任何单个国家之间理想分数的差异。例如,我想计算 1993 年美国和克罗地亚之间理想点的差异。如何对美国年度理想点进行子集化并从中减去所有其他国家/地区的数据?

数据如下

    year       Idealpoint    CountryName             

1 1991 2.98 United States of America
2 1992 3.00 United States of America
3 1993 2.97 United States of America
4 1994 3.00 United States of America
5 1995 3.11 United States of America
6 1996 3.12 United States of America
7 1997 2.99 United States of America
8 1998 2.72 United States of America
9 1999 2.51 United States of America
10 2000 2.56 United States of America

还有其他行具有不同的国家/地区名称,例如克罗地亚、瑞典等...

我尝试创建仅包含美国理想点数的子集向量,并从上述数据的子集中减去该子集(不含美国数据)。问题是,并不是每个国家每年都有一个理想的点,因为在某些情况下该国家并不存在。因此,US 理想点向量的长度不是非 US 向量长度的倍数。我该如何解决这个问题?

理想情况下,我希望看到的是类似的东西(只是一个例子,而不是我期望的实际结果)

    year       Idealpoint    CountryName   DifIdealUS      

1 1991 2.98 Latvia 1
2 1992 3.00 Latvia 1.2
3 1993 2.97 Latvia 1.3
4 1994 3.00 Latvia 1
5 1995 3.11 Latvia 1.1
6 1996 3.12 Latvia 1.2
7 1997 2.99 Latvia 1.3
8 1998 2.72 Latvia 1.6
9 1999 2.51 Latvia 1.7
10 2000 2.56 Latvia 1.6

最佳答案

我们能做到

library(dplyr)
df1 %>%
group_by(year) %>%
mutate(DifIdealUS = Idealpoint -
Idealpoint[CountryName == 'United States of America'])

或者另一种选择,如果所有“CountryName”中的“年份”值相同并且按顺序排列,则

df1$DifIdealUS <- df1$Idealpoint - 
df1$Idealpoint[df1$CountryName == "United States of America"]

关于r - 如何从列的其余部分中减去列的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55940801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com