【发布时间】:2017-07-06 12:08:57
【问题描述】:
所以,我有两个数据框,一个是原始数据框,另一个是从原始数据中提取的行,然后更改其中一列中的值。
他们都有相同的号码。列 (10),但原始大于第二个。两者的数据类型相同,我需要替换由因子组成的一列中的值。我试过 left_join 和 merge 但我遇到了错误,这可能是我的错误,但我不知道我做错了什么,因为我仍然没有正确理解 R。
例如。数据框 1:
- ALB 医学
- SKJ 方程
- ALB 环流
- BUM 方程
- WHM 翻译
- YFT 方程
数据框 2:
- ALB 北机场
- BUM South Atl
- WHM 环流
- YFT 环流
我想得到的帽子:
- ALB 医学
- SKJ 方程
- ALB 北机场
- BUM South Atl
- WHM 环流
- YFT 环流
R(dataset1)的原始数据摘录:
> print(catchesbyPPOW[1:10,])
Species Long Lat tCatch_sqrt ECOREGION REALM PROVINC TYPE
1 ALB 17.5 -57.5 0.5099020 <NA> Southern Cold Water Antarctic PPOW
2 YFT 17.5 -57.5 0.2812472 <NA> Southern Cold Water Antarctic PPOW
3 BFT -67.5 -52.5 2.9238673 Patagonian Shelf Temperate South America Magellanic MEOW
4 BFT -62.5 -52.5 3.2256782 <NA> Atlantic Warm Water Malvinas Current PPOW
5 ALB -52.5 -52.5 0.2323575 <NA> Southern Cold Water Subantarctic PPOW
6 SWO -52.5 -52.5 0.9996549 <NA> Southern Cold Water Subantarctic PPOW
7 ALB -32.5 -52.5 0.4097926 <NA> Southern Cold Water Antarctic PPOW
8 BET -32.5 -52.5 1.4336387 <NA> Southern Cold Water Antarctic PPOW
9 SWO -32.5 -52.5 1.2541730 <NA> Southern Cold Water Antarctic PPOW
10 YFT -32.5 -52.5 1.2215236 <NA> Southern Cold Water Antarctic PPOW
BIOME optional
1 Polar TRUE
2 Polar TRUE
3 <NA> TRUE
4 Boundary - western TRUE
5 Polar TRUE
6 Polar TRUE
7 Polar TRUE
8 Polar TRUE
9 Polar TRUE
10 Polar TRUE
数据集 2:
> print(outliers[1:10,])
Species Long Lat tCatch_sqrt ECOREGION REALM TYPE BIOME optional
3 BFT -67.5 -52.5 2.9238673 Patagonian Shelf Temperate South America MEOW <NA> TRUE
39 SWO -62.5 -42.5 0.6316645 North Patagonian Gulfs Temperate South America MEOW <NA> TRUE
130 ALB -57.5 -37.5 7.6342489 Uruguay-Buenos Aires Shelf Temperate South America MEOW <NA> TRUE
131 BET -57.5 -37.5 0.8367258 Uruguay-Buenos Aires Shelf Temperate South America MEOW <NA> TRUE
132 BUM -57.5 -37.5 0.5127475 Uruguay-Buenos Aires Shelf Temperate South America MEOW <NA> TRUE
133 SAI -57.5 -37.5 1.3915028 Uruguay-Buenos Aires Shelf Temperate South America MEOW <NA> TRUE
134 SKJ -57.5 -37.5 1.2453915 Uruguay-Buenos Aires Shelf Temperate South America MEOW <NA> TRUE
135 SWO -57.5 -37.5 2.4453357 Uruguay-Buenos Aires Shelf Temperate South America MEOW <NA> TRUE
136 WHM -57.5 -37.5 0.2320991 Uruguay-Buenos Aires Shelf Temperate South America MEOW <NA> TRUE
137 YFT -57.5 -37.5 2.2360680 Uruguay-Buenos Aires Shelf Temperate South America MEOW <NA> TRUE
PROVINC
3 Malvinas Current
39 Malvinas Current
130 Malvinas Current
131 Malvinas Current
132 Malvinas Current
133 Malvinas Current
134 Malvinas Current
135 Malvinas Current
136 Malvinas Current
137 Malvinas Current
我删除了我失败的尝试,我只保留了我用 left_join 尝试过的最新一次:
PPOWoutliers<-left_join(catchesbyPPOW, outliers, by = NULL)
这给了我这个警告:
Joining, by = c("Species", "Long", "Lat", "tCatch_sqrt", "ECOREGION", "REALM", "PROVINC", "TYPE", "BIOME", "optional")
Warning message:
In left_join_impl(x, y, by$x, by$y, suffix$x, suffix$y) :
joining factors with different levels, coercing to character vector
【问题讨论】:
-
您能以易于粘贴的形式提供数据吗?您尝试了哪些方法但似乎不起作用?
-
嗨 @RomanLuštrik 我刚刚更新了描述,希望对您有所帮助!
-
请注意,您的数据集中的列似乎不一样(正如您在文本中建议的那样)
-
顺序可能是的,但名称应该相同,我错过了什么?
-
BIOME和optional不在第二个数据集中