r - 基于 R 上的另一个矩阵在数据框中创建一个变量
问题描述
我在执行以下任务时遇到了一些问题我有一个此类数据框,其中包含 99 个不同国家/地区的数千个 ID
ID Nationality var 1 var 2 ....
1 Italy //
2 Eritrea //
3 Italy //
4 USA
5 France
6 France
7 Eritrea
....
我想添加一个与给定的国籍宏区域相对应的变量,所以我创建了一个此类矩阵,并遵循以下规则
Nationality Continent
Italy Europe
Eritrea Africa
Usa America
France Europe
Germany Europe
....
我想得到这个
ID Nationality var 1 var 2 Continent
1 Italy // Europe
2 Eritrea // Africa
3 Italy // Europe
4 USA America
5 France Europe
6 France Europe
7 Eritrea Africa
....
我正在尝试使用此命令
datasubset <- merge(dataset , continent.matrix )
但它不起作用,它报告以下错误 Error: cannot allocate vector of size 56.6 Mb
这对我来说似乎很奇怪,还试图将此代码应用于它不起作用的子集。你对如何进行有什么建议吗?
非常感谢您的帮助,我希望我的问题听起来不太琐碎,但我对 R 很陌生
解决方案
您可以使用left_join
函数(dplyr 的库)执行此操作:
library(dplyr)
df <- tibble(ID=c(1,2,3),
Nationality=c("Italy", "Usa", "France"),
var1=c("a", "b", "c"),
var2=c(4,5,6))
nat_cont <- tibble(Nationality=c("Italy", "Eritrea", "Usa", "Germany", "France"),
Continent=c("Europe", "Africa", "America", "Europe", "Europe"))
df_2 <- left_join(df, nat_cont, by=c("Nationality"))
输出:
> df_2
# A tibble: 3 x 5
ID Nationality var1 var2 Continent
<dbl> <chr> <chr> <dbl> <chr>
1 1 Italy a 4 Europe
2 2 Usa b 5 America
3 3 France c 6 Europe
推荐阅读
- r - 如何在 r 中的点上拟合对数曲线?
- assembly - 如何使用 IBM/MS Int 13h 扩展读取 FAT32 RootDirectory?
- python - 当我使用 line.strip(''\n") 加载时,我试图从文件中的列表中检索一个字符串,如果有点,它返回我不是完整的字符串
- javascript - 在 React 中调用组件/函数的正确方法?
- javascript - 从另一个 ReactJS 组件触发画布上的绘图
- c# - 最小化我的 xamarin.ios 应用程序后,如何在视图控制器上保持不变并保留数据?
- python - 拟合的 xgboost 模型的 .coef_ 属性能否指出哪些是最重要的特征?
- python-3.x - Python调用rest api从url获取数据
- mysql - 用于 redis 和 mysql 的 ngrok
- python - 在 Python 中是否可以访问在另一个方法中定义的方法?