我有两个不同长度的数据帧。我想用CAP*货币和Go*货币与df_cur的乘法来改变数据帧df中的列。这应该在国家和年份必须分别对两个数据家族相同的条件下完成。更具体地说,
#df#
#df_cur#
所以,我想像这样变换df:
#df#
我回顾了许多将两个数据帧大小不同的列相乘得到的答案,但没有任何结果。
我的代码示例:
Country<-c("AUS","AUS","AUS","AUS","AUS","AUS", "BEL", "BEL", "BEL", "BEL", "BEL", "BEL")
Sector<-c("A","B","C","A","B","C","A","B","C","A","B","C")
Year<-c("2000", "2000", "2000", "2001", "2001", "2001", "2000", "2000", "2000", "2001", "2001", "2001")
Cap<-c(100,150,160,110,140,165,50,70,100,55,65,110)
Go<-c(200,200,160,200,190,155,150,160,200,160,140,190)
Exposion<-c(0.2,0.3,0.25,0.25,0.4,0.2,0.1,0.15,0.2,0.15,0.1,0.3)
df<-data.frame(Country,Sector,Year,Cap,Go,Exposion)
country<-c("AUS","AUS", "BEL", "BEL")
Year<-c("200","2001","2000","2001")
currency<-c(0.58, 0.6, 0.92, 0.95)
df_cur<-data.frame(country,Year,currency)
非常感谢您的宝贵时间!
使用< code>data.table
library(data.table)
setDT(df)[df_cur, c("Cap", "Go") :=
.(Cap * currency, Go * currency), on = .(Country = country, Year)]
-输出
df
# Country Sector Year Cap Go Exposion
# 1: AUS A 2000 100.00 200.0 0.20
# 2: AUS B 2000 150.00 200.0 0.30
# 3: AUS C 2000 160.00 160.0 0.25
# 4: AUS A 2001 66.00 120.0 0.25
# 5: AUS B 2001 84.00 114.0 0.40
# 6: AUS C 2001 99.00 93.0 0.20
# 7: BEL A 2000 46.00 138.0 0.10
# 8: BEL B 2000 64.40 147.2 0.15
# 9: BEL C 2000 92.00 184.0 0.20
#10: BEL A 2001 52.25 152.0 0.15
#11: BEL B 2001 61.75 133.0 0.10
#12: BEL C 2001 104.50 180.5 0.30
欢迎Panagiotis!最简单的是首先将这两个data.frames.然后在第二步中,您可以使用mutate()
创建新列:
library(dplyr)
df %>%
left_join(., df_cur) %>%
mutate(cap2 = Cap * currency) %>%
mutate(go2 = Go * currency)
我有两个具有经度和纬度值的数据帧,我想从数据帧#2中提取值(例如数据帧#2的第三列),这些值与数据帧1的列匹配...例如,数据帧1有两列(、),数据帧2有三列(、和一些值)...我想在数据帧1中添加第三列,其中的值对应于两个数据帧中两列完全匹配的值,类似于和...在、不匹配的对中,我希望添加,以便第三列(我要添加到数据。帧1)的长度为=。我尝试了merge函数,但在将的两列与的列进行匹配时遇到了困
我有一个不同长度的数据帧列表(df),按年份索引,数据的代理如下所示:
我正在将某些程序集打包到 msi 包中。在执行此操作时,我要求将一些程序集放入本地文件系统以及目标计算机的 GAC 中。众所周知,在这种情况下,重复文件表将无济于事。我决定将程序集放在具有不同标识符的 CAB 文件中两次。现在,为了填充组件表,我有不同的组件标识符,但我没有用于类似程序集的不同组件 GUID。我的问题是,如果我为具有不同组件标识符(在组件表中)的条目保持GUID(因为基本上程序集是
我在python中有两个不同长度的数据帧,如下所示: 我现在要做的是比较df1的Column1和df2的ColumnA。对于每个“命中”,其中df2中ColumnA中的一行与df1中Column1中的一行具有相同的值,我想在df1中附加一列,其中df2的vaule ColumnB对于找到“命中”的行具有相同的值,因此我的结果如下所示: 到目前为止,我尝试的是: 这给了我一个错误,说我不能比较两个不
df1有每月时间索引,df2有季度时间索引。df1和df2有不同的行数和列数,我想:(1)并排连接它们并保持它们的索引。(2)输出到excel文件。 我尝试过pd.concat,但是这种方法连接基于我不想要的数据帧索引之一的数据帧 excel中的预期结果:
这里有两个数据帧: 预期数据帧: 以及实际数据帧: 现在两个数据帧之间的区别是: 我们使用的是except函数df1.except(df2),但问题是,它返回的是不同的整行。我们希望看到该行中哪些列不同(在本例中,“romin”和“romino”与“emp_name”不同)。我们在这方面遇到了巨大的困难,任何帮助都会很好。