Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot两个数据帧的几何点覆盖图,按颜色区分,按id子集_R_Loops_Ggplot2_Subset - Fatal编程技术网

R ggplot两个数据帧的几何点覆盖图,按颜色区分,按id子集

R ggplot两个数据帧的几何点覆盖图,按颜色区分,按id子集,r,loops,ggplot2,subset,R,Loops,Ggplot2,Subset,我有两个具有相同行和列的数据帧,DataMaster和IMPSAVG,我正试图为它们创建一系列组合叠加的2d散点图(按国家“ID”和变量列划分的子集),其中包含来自两个数据集的观测值,这两个数据集在ggplot中按颜色区分。下面的代码不起作用,但给出了我的目标(acctm是变量,ARG是本例中的国家/地区) 尽管只需将上述内容付诸实施将是非常值得赞赏的,但在两个数据集中(也由向量CountryList$country指定)的country列中为所有唯一的国家ID创建此变量的单独绘图的循环将是令人

我有两个具有相同行和列的数据帧,
DataMaster
IMPSAVG
,我正试图为它们创建一系列组合叠加的2d散点图(按国家“ID”和变量列划分的子集),其中包含来自两个数据集的观测值,这两个数据集在ggplot中按颜色区分。下面的代码不起作用,但给出了我的目标(
acctm
是变量,
ARG
是本例中的国家/地区)


尽管只需将上述内容付诸实施将是非常值得赞赏的,但在两个数据集中(也由向量
CountryList$country
指定)的
country
列中为所有唯一的国家ID创建此变量的单独绘图的循环将是令人惊讶的。谢谢

我认为您需要创建一个新的数据框架,它将这两个数据框架结合起来,并将您感兴趣的国家进行子集化。您可以使用
rbind
将两者结合起来,还应该为样本添加一列,指明它们来自哪个数据帧,以便您以后可以在
aes(…,color=new_column)

中使用它。如果没有可复制的数据集示例,您很难确定要查找的是什么

但是,使用这些假数据集:


df1再加上dc37出色的写操作,下面是一个将一个数据帧打印在另一个数据帧之上的技巧

ggplot(subset(DF, Country =="A"), aes(x = Year, y = Value, color = Dataset)) +
  geom_point(shape = 21, na.rm = T) +
  geom_point(data = subset(DF, Dataset == DF1 & Country == "A"),
     aes(x = Year, y = compi, color = E), shape = 21, na.rm = T)

其中“DF1”是要绘制在顶部的数据框。

在无法运行代码(没有数据)或看到任何输出的情况下,我猜您可以将两个数据集行绑定在一起,并显示数据集的来源,然后将其指定给颜色。这更符合ggplot的设计方式。这里的列名也不需要字符串,而且我不确定
subset
参数来自何处
ggplot(subset(DF, Country =="A"), aes(x = Year, y = Value, color = Dataset)) +
  geom_point(shape = 21, na.rm = T) +
  geom_point(data = subset(DF, Dataset == DF1 & Country == "A"),
     aes(x = Year, y = compi, color = E), shape = 21, na.rm = T)