我有两个具有一行的数据帧,它们是唯一键,并且都存在于两个数据集中。我只想在特定行值匹配的两个列中都保留这些列。
对于以下数据,Data_1
的第一行为1
,2
,3
,4
,但是Data_2
仅具有{{1 }},1
,2
。我想要比较或子集,使得3
仅具有第Data_1
,1
,2
行,因为这些键仅在两个数据帧中都存在。
目标不是合并,而是基于两个不同数据帧的比较的子集。
关于如何完成此操作的任何建议?
数据_1
3
数据_2
read.table(text = "A B C D
1 2 3 4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4", header = T)
输出
根据第2行的值,只有read.table(text = "A1 B1 C1
1 2 3
1.0 2.2 4.3
1.0 2.2 4.3
1.0 2.2 4.3
1.0 2.2 4.3
1.0 2.2 4.3 ", header = T)
会发生变化,因为它有另外一行不在Data_1
中
Data_2
答案 0 :(得分:1)
您的问题尚不清楚。但是,如果您只是尝试基于data_2的一行对data_1进行子集设置,则下面的代码将起作用。换句话说,下面的代码将产生所需的“输出”数据帧。
data_1 <- read.table(text = "A B C D
1 2 3 4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4", header = T)
data_2 <- read.table(text = "A1 B1 C1
1 2 3
1.0 2.2 4.3
1.0 2.2 4.3
1.0 2.2 4.3
1.0 2.2 4.3
1.0 2.2 4.3 ", header = T)
output <- data_1[data_1[1,] %in% data_2[1,]]
A B C
1 1.0 2.0 3.0
2 1.1 1.2 1.3
3 1.1 1.2 1.3
4 1.1 1.2 1.3
5 1.1 1.2 1.3
6 1.1 1.2 1.3