基于变量的R中数据帧的子集设置/未合并

基于变量的R中数据帧的子集设置/未合并,r,merge,dataframe,subset,R,Merge,Dataframe,Subset,我在R中有两个数据帧 one <- data.frame( x = letters[1:10] , y = 1:10, z = rnorm(10)) two <- data.frame( x = letters[1:20] , y = 1:20, z = one$z) 一种一种溶液在R基中: #using as.character since one$x and two$x are factors in this case > two[ as.character(on

我在R中有两个数据帧

one <- data.frame( x = letters[1:10] , y = 1:10, z = rnorm(10))    
two <- data.frame( x = letters[1:20] , y = 1:20, z = one$z)

一种一种溶液在R基中:

#using as.character since one$x and two$x are factors in this case
> two[ as.character(one$x) != as.character(two$x), ]
   x  y          z
11 k 11 -0.6680130
12 l 12 -1.0501888
13 m 13 -1.0987269
14 n 14  1.0045557
15 o 15 -0.6002310
16 p 16  1.3162201
17 q 17 -0.1209575
18 r 18 -1.0129547
19 s 19  2.4832670
20 t 20  0.4660156

你的意思是说使用dplyr来进行反连接(二,一)
?再次感谢!如果我处理的是因子而不是字符,那么代码会发生什么变化?我尝试在我的数据集中使用
as.factor
,但被告知Ops.factor(as.factor(一个$EntrezUID),as.factor(两个$EntrezUID))中存在
错误:因子的级别集完全不同。由于您在数据集中使用因子,因此需要将它们转换为字符,这就是我上面的代码在方括号内所做的。无需将
指定为.factor
。你需要准确地使用我的代码,因为你使用的是因子,所以代码不应该改变。如果你处理的是因子而不是字符,那么你仍然需要将它们转换成字符。data.frame中的实际类无论如何都不会更改。