我需要合并两个不同大小的数据帧.较大的one(df1)有一个具有多个重复值(licto)df2的列licto,较短的one()具有该列,但其值不会重复.df2也有一个ID列.我需要一个df1带有ID 的新列df2,根据重复的值重复licto.下面的例子可能会让它更清晰.
df1<-data.frame(licfrom=c(15470,16307,17121,15350,16982,17182,20319,16727,16946,16262,16605,
16607,15924,15399,15404,16739,16839,16842,16899,16157,15399),
licto=c(17121,17121,17121,16982,16982,16982,16982,16946,16946,16262,16607,
16607,15924,16839,16839,16839,16839,16839,16839,16157,15399))
Run Code Online (Sandbox Code Playgroud)
.
df2<-data.frame(licto=c(17121,16982,16946,16607,15924,16839,16157,15399),
fisherID=c(160,760,770,406,106,2196,17323,2441))
Run Code Online (Sandbox Code Playgroud)
我的数据框看起来像这样:
df1 df2
licfrom licto licto fisherID
15470 17121 17121 160
16307 17121 16982 760
17121 17121 16946 770
15350 16982 16262 947
16982 16982 16607 406
17182 16982 15924 106
20319 16982 16839 2196
16727 16946 16157 17323
16946 16946 15399 2441
16262 16262
16605 16607
16607 16607
15924 15924
15399 16839
15404 16839
16739 16839 …Run Code Online (Sandbox Code Playgroud) 下面是我原始数据框的一小部分.我需要那些在特定的行合并id是在特定的季节重复和lic和vessel是不同的.通过结合我需要总和qtty和grossTon.
请以id 431中的season 1998为例(*).
season lic id qtty vessel grossTon
…
1998 16350 431 40 435 57
1998 16353 431 28 303 22.54
…
Run Code Online (Sandbox Code Playgroud)
同一主题431有两种不同的lic(16350和16353)和两种不同的vessels(435和303).在这个特定情况下预期的结果是:
season lic id qtty vessel grossTon
…
1998 16350 431 68 435 79.54
…
Run Code Online (Sandbox Code Playgroud)
我不介意它lic和vessel生成的行中提醒,我要的是保持season,id并将得到的总和qtty和grossTon.在上面的示例中,我手动选择lic 16350和vessel 435.
说实话,我不知道该怎么做,所以我非常感谢任何帮助.
谢谢 …
我有两个不同长度的表,我需要将它们合并为两个常见的列(季节和客户端),并在没有共同元素的情况下用NA填充单元格.下面我展示了我需要的两张原始表和最终表中的一小部分.我尝试了许多没有成功的事情.
season client.ID qtty
1998 13 30
1999 13 30
2000 13 29
1998 28 18
1999 28 18
2000 28 18
1998 35 21
1999 35 21
2000 35 21
season client.ID vessel.ID overLength
1998 28 29 17.1
1998 28 1809 4.26
1998 28 2215 9.45
1998 28 4173 5.8
1998 28 8151 4.5
1999 28 29 17.1
1999 28 1809 4.26
1999 28 2215 9.45
1999 28 4173 5.8
1999 28 8151 4.5
2000 28 29 17.1
2000 …Run Code Online (Sandbox Code Playgroud) 我有以下数据框:
id1 id2 qtty cat output
15994 15994 30 1 1
25787 26275 7 2 1
122301 122301 0 0 0
36199 35333 14 2 1
36199 36199 15 1 1
46223 45746 14 2 1
46223 46223 15 1 1
80570 80570 0 0 0
55728 55728 1 1 1
94218 94218 0 0 0
69456 66837 5 2 1
Run Code Online (Sandbox Code Playgroud)
cat我想根据以下条件生成的列在哪里:
id1=id2 and qtty=0 then cat=0
id1=id2 and qtty>0 then cat=1
id1!=id2 and qtty=0 then cat=2
id1!=id2 and …Run Code Online (Sandbox Code Playgroud) 我有一个3列表(年份,ID,变量).对于我需要的每个个人ID,我需要在下一年添加一个新行,在变量列中添加一个0.我的难点是每个ID都有不同的行数(年).
这可能是原始表:
ID year var
1 1998 2
1 1999 5
1 2000 6
1 2001 6
1 2002 6
2 1998 12
2 1999 12
3 1998 5
3 1999 5
3 2000 4
Run Code Online (Sandbox Code Playgroud)
......这就是我需要的:
ID year var
1 1998 2
1 1999 5
1 2000 6
1 2001 6
1 2002 6
1 2003 0
2 1998 12
2 1999 12
2 2000 0
3 1998 5
3 1999 5
3 2000 4
3 2001 0
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
干杯