R 来自具有不同级别的相似因子的子集行

R 来自具有不同级别的相似因子的子集行,r,R,我很难根据特定条件从数据帧中对行进行子集划分 我有一个简单的数据框架,有两列包含因子。 我想保留列1的因子等于列2的因子的行 我的问题是,第1列的因子比第2列的因子有更多的级别。 我有: 但它告诉我,这些因素并没有相同的水平。我听说过droplevels()或drop与subset函数一起使用 谢谢你的帮助。谢谢 这个怎么样: library(tidyverse) df<-data.frame(f1=factor(sample(1:4,100,TRUE)),

我很难根据特定条件从数据帧中对行进行子集划分

我有一个简单的数据框架,有两列包含因子。 我想保留列1的因子等于列2的因子的行

我的问题是,第1列的因子比第2列的因子有更多的级别。 我有:

但它告诉我,这些因素并没有相同的水平。我听说过
droplevels()
drop
subset
函数一起使用

谢谢你的帮助。谢谢

这个怎么样:

library(tidyverse)
df<-data.frame(f1=factor(sample(1:4,100,TRUE)),
               f2=factor(sample(1:3,100,TRUE)))
subdf<-filter(df, as.character(f1)==as.character(f2))
subdf
   f1 f2
1   1  1
2   3  3
3   3  3
4   3  3
5   3  3
6   2  2
7   3  3
8   2  2
9   1  1
10  2  2
11  1  1
12  1  1
13  2  2
14  2  2
15  3  3
16  3  3
17  1  1
18  1  1
> str(subdf)
'data.frame':   18 obs. of  2 variables:
 $ f1: Factor w/ 4 levels "1","2","3","4": 1 3 3 3 3 2 3 2 1 2 ...
 $ f2: Factor w/ 3 levels "1","2","3": 1 3 3 3 3 2 3 2 1 2 ...
库(tidyverse)

df使用
as.character
将这些列转换为字符向量。
library(tidyverse)
df<-data.frame(f1=factor(sample(1:4,100,TRUE)),
               f2=factor(sample(1:3,100,TRUE)))
subdf<-filter(df, as.character(f1)==as.character(f2))
subdf
   f1 f2
1   1  1
2   3  3
3   3  3
4   3  3
5   3  3
6   2  2
7   3  3
8   2  2
9   1  1
10  2  2
11  1  1
12  1  1
13  2  2
14  2  2
15  3  3
16  3  3
17  1  1
18  1  1
> str(subdf)
'data.frame':   18 obs. of  2 variables:
 $ f1: Factor w/ 4 levels "1","2","3","4": 1 3 3 3 3 2 3 2 1 2 ...
 $ f2: Factor w/ 3 levels "1","2","3": 1 3 3 3 3 2 3 2 1 2 ...